Simple Json C# Correct Way to Deserialize Dictionary Chintan Prajapati April 11, 2014 2 min read We are using the RESTSharp Library to work with third-party REST-based APIs, which by default support XML and JSON deserialization. However, their documentation for Deserialization covers a limited, simple example, which was not sufficient to help us consume Complex JSON output.We are using http://json2csharp.com/ to convert JSON string to C# class. Which works perfectly when a JSON string is in a simple structure. but when it comes to Deserialize to JSON to Dictionary< string, class> the class generated using json2csharp.com fails.Example:Consider following complex JSON response which requires Dictionary<string, class>.JSON: "response": { "1007": { "total": { "inStock": 10, "onHand": 9, "allocated": 1 } }, "1008": { "total": { "inStock": 0, "onHand": 0, "allocated": 0 } } }Output after converting JSON to C# class using converter tool(https://json2csharp.com/): public class Total { public int InStock { get; set; } public int OnHand { get; set; } public int Allocated { get; set; } } public class StockDetails1007 { public Total Total { get; set; } } public class StockDetails1008 { public Total Total { get; set; } } public class Response { public StockDetails1007 Stock1007 { get; set; } public StockDetails1008 Stock1008 { get; set; } } public class RootObject { public Response Response { get; set; } } Wrong way to put Dictionary: public class Response { public Dictionary<string, Product> Products { get; set; } } public class RootObject { public Response Response { get; set; } }The right way to put Dictionary: public class RootObject { // Corrected the Dictionary syntax by using proper < and > characters public Dictionary<string, Product> Response { get; set; } } public class Product { public Total Total { get; set; } } public class Total { public int InStock { get; set; } public int OnHand { get; set; } public int Allocated { get; set; } } I hope this article saves time for you.Thank you…!!