<div dir="ltr"><div style="font-size:14px">Hi Swift-Users,</div><div style="font-size:14px"><br></div><div style="font-size:14px">I was wondering if there is any way to decode JSON from Any type JSON Object using `JSONDecoder`, not from Data type object. </div><div style="font-size:14px"><br></div><div style="font-size:14px">Currently, `JSONDecoder` has only one decode function which decodes Data type object to `Decodable`. Inside the function, it serializes Data object to Any Type JSON Object using `JSONSerialization` and pass it into `_JSONDecoder(referencing:, options:)` (Refer JSONEncoder.swift#874).</div><div style="font-size:14px"><br></div><div style="font-size:14px">As discussed in some of other threads such as &quot;SE-0166: Swift Archival &amp; Serialization&quot;, the default implementation of JSONDecoder or Decodable protocol doesn’t allow to decode from one format to another format (such as snake-case to camel-case), we need to implement custom CodingKey enums. However, in our project, to parse the server API JSON response with snake-case, declaring custom CodingKey enums for all the pre-existing models is almost impossible and very inefficient, so I decided to covert all the JSON keys from snake-case to camel-case, and then pass it into `JSONDecoder.decode`. To achieve this, we need to convert the Data object resulted from `URLSession.task` to Any type JSON Object using `JSONSerialization`, do the conversion from snake-case to camel-case and then convert back to Data type and then pass to `JSONDecoder.decode` which looks very redundant because the function uses `JSONSerialization` inside of it as mentioned above. If there is a function like below, we can get rid of this redundant call of `JSONSerialization`.</div><div style="font-size:14px"><br></div><div style="font-size:14px">```</div><div style="font-size:14px">func decode&lt;T : Decodable&gt;(_ type: T.Type, from JSONObject: Any) throws -&gt; T</div><div style="font-size:14px">```</div><div style="font-size:14px"><br></div><div style="font-size:14px">Sorry if I am misunderstanding the new API but is there any way to decode `Decodable` directly from Any type JSON Object?</div><div style="font-size:14px"><br></div><div style="font-size:14px">If not, I think adding the function aforementioned and giving an ability to opt-out this JSON serialization call would give more flexibility to the API in my humble opinion.</div><div style="font-size:14px"><br></div><div style="font-size:14px">Thank you for reading.</div><div style="font-size:14px"><br></div><div style="font-size:14px">All the best,</div><div style="font-size:14px">- Masaki</div></div>