【问题标题】:Parse a Json Array in to a class in c#将 Json 数组解析为 c# 中的类
【发布时间】:2013-12-25 02:40:53
【问题描述】:

我解析了这个单一的 Json:

{
    "text": "Sample Text",
    "id": 123456789,
    "user": {
      "name": "ExampleUser",
      "id": 123,
      "screen_name": "ExampleUser"
    },
    "in_reply_to_screen_name": null,
  }

到我的 c# 类 RootObject :

public class User
{
    public string name { get; set; }
    public int id { get; set; }
    public string screen_name { get; set; }
}

public class RootObject
{
    public string text { get; set; }
    public long id { get; set; }
    public User user { get; set; }
    public object in_reply_to_screen_name { get; set; }
}

像这样:

RootObject h = JsonConvert.DeserializeObject<RootObject>(string);

所有这一切都完美无缺,但现在我想解析一个包含所有先例 json 对象的数组。

例如这个 Json 数组:

[
    {
    "text": "Sample Text",
    "id": 123456789,
    "user": {
      "name": "ExampleUser",
      "id": 123,
      "screen_name": "ExampleUser"
    },
    "in_reply_to_screen_name": null,
  },
     {
    "text": "Another Sample Text",
    "id": 101112131415,
    "user": {
      "name": "ExampleUser2",
      "id": 124,
      "screen_name": "ExampleUser2"
    },
    "in_reply_to_screen_name": null,
  }
] 

我创建了另一个类:

  public class ListRoot { 
      public List<RootObject> status { get; set; } 
  }

然后用同样的方法:

ListRoot h = JsonConvert.DeserializeObject<ListRootObject>(string);

但它不起作用。你知道如何将这个 Json 数组解析为 c# 类吗?

【问题讨论】:

    标签: c# arrays json json.net


    【解决方案1】:

    如果你简单地将它反序列化为List&lt;RootObject&gt;,你所拥有的 JSON 就可以工作:

    var h = JsonConvert.DeserializeObject<List<RootObject>>(string);
    

    或者一个数组:

    var h = JsonConvert.DeserializeObject<RootObject[]>(string);
    

    如果您想反序列化 ListRoot,则 JSON 需要如下所示:

    {
        "status": [
            {
                "text": "Sample Text",
                ...
            },
            {
                "text": "Another Sample Text",
                ...
            }
        ] 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-26
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多