Home >Backend Development >C++ >How to Deserialize JSON with Dynamic Keys in C#?
Dynamic Keys in JSON Deserialization
When dealing with JSON data containing dynamic keys, accessing object properties can be challenging. Consider the following data:
{ "users" : { "100034" : { "name" : "tom", "state" : "WA", "id" : "cedf-c56f-18a4-4b1" }, "10045" : { "name" : "steve", "state" : "NY", "id" : "ebb2-92bf-3062-7774" }, "12345" : { "name" : "mike", "state" : "MA", "id" : "fb60-b34f-6dc8-aaf7" } } }
In this JSON object, the keys are numeric strings, making it difficult to define classes with static property names. To resolve this, we can leverage the Dictionary
Class Structure and Deserialization
We define the following classes:
class RootObject { public Dictionary<string, User> users { get; set; } } class User { public string name { get; set; } public string state { get; set; } public string id { get; set; } }
Then, we can deserialize the JSON data like so:
RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
This creates a RootObject instance with a Dictionary
Accessing Object Properties
We can now access the object properties using the dictionary keys. The following code iterates through the users:
foreach (string key in root.users.Keys) { User user = root.users[key]; // Access properties using user.name, user.state, etc. }
Output:
key: 10045 name: steve state: NY id: ebb2-92bf-3062-7774 key: 12345 name: mike state: MA id: fb60-b34f-6dc8-aaf7 key: 100034 name: tom state: WA id: cedf-c56f-18a4-4b1
This approach allows us to deserialize JSON data with dynamic keys and access object properties seamlessly.
The above is the detailed content of How to Deserialize JSON with Dynamic Keys in C#?. For more information, please follow other related articles on the PHP Chinese website!