Deserializing a JSON Enumerated String to a Different C# Enumerated Type

22 June 2015 C#


Recently I had to use a Webhook that returned an enumerated string that was very different from the enum it was supposed to convert to (in this case the JSON used snake case, C# used camel case).

Oddly enough, I knew the solution for this when receiving XML but I was a bit stumped when it came to dealing with JSON.

I could have received the JSON string and then manually mapped out the entire enum within my business logic, but I wanted to handle this during deserialization with decent performance whilst still mapping the enum and its associated string in one easily maintainable location.


The solution was to use some of the methods and attributes in Newtonsoft.JSON, you know, that package that everything else is dependent on but you never seem to use. This makes use of...

Read more