[swift-users] dealing with heterogenous lists/dictionary with Codable

Geordie Jay geojay at gmail.com
Thu Oct 19 05:38:34 CDT 2017


David Baraff via swift-users <swift-users at swift.org> schrieb am Do. 19.
Okt. 2017 um 03:47:

> So I have simple structs like this:
>
>         struct Library: Codable {
>                 let domain: String
>                 let unit: String
>         }
>
> and it’s super-simple to serialize.  Yay.
>
> But:
>
>         struct LibraryGroup : Codable {         // I wish...
>            let libraries: [Library]
>            let someDict: [String : Any]
>         }
>

I haven’t tried this, but is it possible to have a dictionary of [String :
Codable] ? Because that’s exactly the type requirements you’re describing,
no?

Geordie


> So what I’m looking for is something where if the values in someDict are
> themselves Codable, I can serialize things, and if they’re not, I can’t.
> In my previous scheme, I was using NSKeyedArchiver to serialize everything,
> manualy, including someDict; in trying to switch to Codable I ran smack
> into the fact that Codable wants to know what all the types are, in advance.
>
> Am I just stuck?  How do I get the best of both worlds, where the compiler
> can make use of the fact that it can see the data types of my structures,
> while still being able to serialize heterogenous data like is found in
> LibraryGroup?
>
> Is my only alternative to write a custom coder for LibraryGroup?  Is there
> any hope I could teach Codable what to do with
>         [String: Any]
>
> ?
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20171019/29ba921b/attachment.html>


More information about the swift-users mailing list