<div dir="ltr"><div><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0167-swift-encoders.md">https://github.com/apple/swift-evolution/blob/master/proposals/0167-swift-encoders.md</a><br></div><div><br></div>This is a really great proposal. As an iOS developer I work with JSON almost every day since most mobile apps communicate with a backend through JSON messages. It&#39;s good to see that better JSON support is coming to Foundation so we don&#39;t have to rely on third party libraries.<div><br></div><div>That being said, there is one thing I don&#39;t like which is that the JSON encoding function returns Data and the decoding function takes Data.</div><div><br></div><div>It would be really great if the Foundation team could introduce a dedicated type of JSON.</div><div>There are several advantages of working with a dedicated type.</div><div>- The underlying data is always valid JSON</div><div>- You can extend this type in the future with helper methods for manipulating JSON</div><div>- It makes it explicit what you are dealing with</div><div><br></div><div>A good analogy is the URL type. You could represent an URL with a String or Data type, but by introducing a dedicated type you have the full advantages mentioned above. Data on the other hand is like a generic container which you cannot easily extend with URL or JSON specific methods.</div><div><br></div><div>Having a dedicated JSON type is also one of the reasons third party libraries like SwiftyJSON are so popular. It makes it super easy to manipulate JSON structures. And sometimes developers like would like to manipulate JSON directly.</div><div><br></div><div>If the proposal would pass in the current form, I would still use SwiftyJSON for manipulating JSON which I would rather avoid and have this all sorted on the Foundation level.</div><div><br></div><div>Just my two cents from the perspective of an iOS developer. JSON handling is really important to us so I hope you make it great!</div><div><br></div><div><pre style="white-space:pre-wrap">&gt;<i> On Apr 3, 2017, at 1:31 PM, Itai Ferber via swift-evolution &lt;<a href="https://lists.swift.org/mailman/listinfo/swift-evolution">swift-evolution at swift.org</a>&gt; wrote:
</i>&gt;<i> Hi everyone,
</i>&gt;<i> 
</i>&gt;<i> With feedback from swift-evolution and additional internal review, we&#39;ve pushed updates to this proposal, and to the Swift Archival &amp; Serialization proposal.
</i>&gt;<i> Changes to here mostly mirror the ones made to Swift Archival &amp; Serialization, but you can see a specific diff of what&#39;s changed here. Full content below.
</i>&gt;<i> 
</i>&gt;<i> We&#39;ll be looking to start the official review process very soon, so we&#39;re interested in any additional feedback.
</i>&gt;<i> 
</i>&gt;<i> Thanks!
</i>&gt;<i> 
</i>&gt;<i> — Itai</i></pre></div></div>