反序列化JSON数据

时间:2013-04-20 12:12:36

标签: c# json deserialization

我从Twitter API SEARCH获得了一个JSON数据。 我正在尝试将这些数据反序列化为对象。

JSON方案如下所示:

    {
      "element": INT,
      "element2": STRING,
       ..
       ..
      "Results":[
                   {
                      "user":STRING, 
                      "image":STRING,
                      ..
                      ..
                   }
                ]
   }

如何使用JSON Toolkit或其他方法将这些JSON元素反序列化为对象?

2 个答案:

答案 0 :(得分:1)

创建一个与JSON模式匹配的类

public class Data
{
   public string Element{get;set;}
   public string Element2{get;set;}
   public List<Result> Results{get;set;}
}
public class Result
{
  public string User{get;set;}
  public string Image{get;set;}
}

并使用JSON.NET反序列化

var result = JsonConvert.DeserializeObject<Result>(json);

答案 1 :(得分:1)

如果您在使用正确的类型定义时遇到问题,可以使用Json.Net始终使用动态反序列化:

var original = JsonConvert.DeserializeObject<dynamic>(jsonstring);

然后基于它构建您想要的对象(例如,如果原始对象包含开销信息集,并且您不需要所有对象):

var somepart = new {
                       E1 = original.element1,
                       E2 = original.element2
                   };