Using JSON.NET to read a dynamic property name

后端 未结 1 1926
无人共我
无人共我 2021-01-02 21:36

I am using data from an external API that returns JSON such as the following.

{
  \"data\": {
    \"4\": {
      \"id\": \"12\",
      \"email\": \"q23rfedsa         


        
相关标签:
1条回答
  • Here's a working dotNetFiddle: https://dotnetfiddle.net/6Zq5Ry

    Here's the code:

    using System;
    using Newtonsoft.Json;
    using System.Collections.Generic;
    
    public class Program
    {
        public static void Main()
        {
            string json = @"{
                          'data': {
                            '4': {
                              'id': '12',
                              'email': 'lachlan12@somedomain.com',
                              'first_name': 'lachlan'
                              },
                            '5': {
                              'id': '15',
                              'email': 'appuswamy15email@somedomain.com',
                              'first_name': 'appuswamy'
                              }
                           }
                        }";
    
            var data = JsonConvert.DeserializeObject<RootObject>(json);
            Console.WriteLine("# of items deserialized : {0}", data.DataItems.Count);
            foreach ( var item in data.DataItems)
            {
                Console.WriteLine("  Item Key {0}: ", item.Key);
                Console.WriteLine("    id: {0}", item.Value.id);
                Console.WriteLine("    email: {0}", item.Value.email);
                Console.WriteLine("    first_name: {0}", item.Value.first_name);
            }
        }
    }
    
    public class RootObject
    {
        [JsonProperty(PropertyName = "data")]
        public Dictionary<string,DataItem> DataItems { get; set; }
    }
    
    public class DataItem
    {
        public string id { get; set; }
        public string email { get; set; }
        public string first_name { get; set; }
    }
    

    Here's the output:

    0 讨论(0)
提交回复
热议问题