代码之家  ›  专栏  ›  技术社区  ›  user1989040

包含“唯一值”的JSON反序列化-RestSharp

  •  0
  • user1989040  · 技术社区  · 11 年前

    我见过反序列化JSON的示例,但我的JSON具有唯一的值

    {
      "-JxsJFiGBqQz1KQmmR0i" : {
        "bizcardData" : {
          "company" : "Tesla",
          "designation" : "Developer",
          "email" : "phani@tesla.com",
          "name" : "Phani",
          "phone" : "5135921241"
        },
        "transData" : {
          "date" : "15-08-29",
          "location" : "39.1395996,-84.5295417",
          "tag" : "sender",
          "time" : "03:17:00"
        }
      },
      "-JxsJKnJIVTFQWE1aSOr" : {
        "bizcardData" : {
          "company" : "Spotify",
          "designation" : "Designer",
          "email" : "komarapa@spotify.com",
          "name" : "Phani Komaravolu",
          "phone" : "5135921241"
        },
        "transData" : {
          "date" : "15-08-29",
          "location" : "39.1395996,-84.5295417",
          "tag" : "sender",
          "time" : "03:17:21"
        }
      }
    }
    

    我正在使用一个名为Transactions的列表>对于 bizCardData(bizCard数据) 和 transData(传输数据) 。我不需要存储唯一值。只有两个值列表。

    请分享如何使用JSON对具有唯一值的JSON进行反序列化的代码,如果可能,请说明如何最好地构造类以存储值。

    谢谢

    1 回复  |  直到 11 年前
        1
  •  1
  •   dbc    11 年前

    RestSharp 支持将具有任意名称的JSON对象反序列化为.Net字典。给定类别:

    public class BizcardData
    {
        public string company { get; set; }
        public string designation { get; set; }
        public string email { get; set; }
        public string name { get; set; }
        public string phone { get; set; }
    }
    
    public class TransData
    {
        public string date { get; set; }
        public string location { get; set; }
        public string tag { get; set; }
        public string time { get; set; }
    }
    
    public class Transactions
    {
        public BizcardData bizcardData { get; set; }
        public TransData transData { get; set; }
    }
    

    您可以这样反序列化和序列化JSON:

            var resultList = SimpleJson.DeserializeObject<Dictionary<string, Transactions>>(json);
    

    或者,

            RestSharp.RestResponse response = new RestSharp.RestResponse();
            response.Content = json;
    
            JsonDeserializer serializer = new JsonDeserializer();
    
            var resultList = serializer.Deserialize<Dictionary<string, Transactions>>(response);