When working with JSON, 99% of the time developers write a custom type that closely matches the format of the JSON payload, and then use their favorite programming languages built in metaprogramming ability to automatically deserialization the payload into a typed object. I want to tell you why you shouldn't use reflection and instead take a page out of functional programming and explicitly decode the JSON payload.