> On Jul 25, 2017, at 2:08 PM, David Hart via swift-evolution > <[email protected]> wrote: > > >> On 25 Jul 2017, at 18:45, Itai Ferber via swift-evolution >> <[email protected] <mailto:[email protected]>> wrote: >> >> Hi Morten, >> >> This is something we’ve considered adding and may do so in the future — >> however, this will require additional API review and will not make it in >> time for the Swift 4.0 release. >> The usage of JSONSerialization as the serialization backend is a current >> implementation detail, and may change in future releases; it would, for >> instance, be more efficient to read/write JSON as we encode/decode, instead >> of trying to collect the entire object graph before performing the next step. >> > As a side note, if this could be pushed even further to allow > encoding/decoding to/from a Stream, it would allow me to use Codable on a > project where I’m parsing JSON files in the hundreds of Mbs. I have no choice > but to use a streaming parser.
+1 to eventually moving to a streaming implementation. This is something I have wanted at times as well. >> We could also introduce something like a general >> StructureEncoder/StructureDecoder which performs this conversion, as this >> might be useful outside of just JSON. (For instance, >> PropertyListEncoder/PropertyListDecoder currently do something similar.) >> >> So yes, this is under consideration for future API. :) >> >> — Itai >> >> On 25 Jul 2017, at 0:44, Morten Bek Ditlevsen via swift-evolution wrote: >> >> In the implementation og JSONEncoder and JSONDecoder we have the internal >> functionality that encodes Codable types to a structure that is compatible >> with JSONSerialization. >> The JSONEncoder then calls JSONSerialization on this structure - and >> JSONDecoder vice versa. >> In some situations it could be nice to just encode or decode to or from >> this structure - and not have the final encoding to Data performed. For >> instance if you have some library that hands you a structure in this format >> and you would like to perform decoding. >> >> Can anyone else see the relevance of exposing this functionality? It could >> be exposed by wrapping _JSONEncoder in a public JSONStructureEncoder or >> something similar. >> >> Sincerely, >> /morten >> _______________________________________________ >> swift-evolution mailing list >> [email protected] <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution> >> _______________________________________________ >> swift-evolution mailing list >> [email protected] <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
