将Json转换为Obj C#

时间:2017-06-14 16:12:19

标签: c# json json.net

我需要将以下JSON格式转换为对象,我的Class属性为

        public string address_line_1 { get; set; }
        public string locality { get; set; }
        public string region { get; set; }
        public string permises { get; set; }
        public string postal_code { get; set; }

我得到的JSON是

 {  
   "items_per_page":2,
   "items":[  
      {  
         "title":"Info",
         "description":"02506398 -  ",
         "links":{  
            "self":"/company/02506398"
         },
         "company_number":"11111",
         "company_status":"active",
         "address":{  
            "region":"Somewhere  ,",
            "postal_code":"TX1 7JQ",
            "locality":"Somewhere  , Somewhere  Mill",
            "premises":"Somewhere  House",
            "address_line_1":"Somewhere  Road"
         },
         "matches":{  
            "snippet":[  

            ],
            "title":[  
               1,
               7,
               9,
               12
            ]
         },
         "description_identifier":[  
            "incorporated-on"
         ],
         "kind":"searchresults#company",
         "date_of_creation":"1990-05-29",
         "company_type":"ltd",
         "snippet":"",
         "address_snippet":"Somewhere  House, Somewhere  Road, Somewhere  , Somewhere  Mill, Somewhere  ,, TX1 7JQ"
      },
      {  


}

我需要获得的唯一信息是 地址部分和我试过

下面的代码
dynamic x = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(t, new Newtonsoft.Json.JsonSerializerSettings() { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore });

Newtonsoft.Json.JsonConvert.DeserializeObject<List<Address>>(t).ForEach(cc =>
                {
                    newAddress.address_line_1 = cc.address_line_1;
                    newAddress.locality = cc.locality;
                    newAddress.permises = cc.permises;
                    newAddress.region = cc.region;
                    newAddress.postal_code = cc.postal_code;

                });

但我找不到合适的信息 所以任何类型的帮助都会很棒     `

1 个答案:

答案 0 :(得分:2)

最简单的方法是为JSON中的所有属性创建类。 有一个非常有用的工具:https://jsonutils.com/ 记得在选择器中选择JsonProperty。

然后,您可以使用:var object = JsonConvert.DeserializeObject<MainClass>(json);

最后,您可以使用对象上的LINQ查询来访问数据,以获得所需的数据。