将Json数组解析为c#中的类

use*_*650 7 c# arrays json json.net

我解析了这个单独的Json:

{
    "text": "Sample Text",
    "id": 123456789,
    "user": {
      "name": "ExampleUser",
      "id": 123,
      "screen_name": "ExampleUser"
    },
    "in_reply_to_screen_name": null,
  }
Run Code Online (Sandbox Code Playgroud)

到我的c#class 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; }
}
Run Code Online (Sandbox Code Playgroud)

像这样 :

RootObject h = JsonConvert.DeserializeObject<RootObject>(string);
Run Code Online (Sandbox Code Playgroud)

所有这一切都很完美,但现在我想解析所有先前的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,
  }
] 
Run Code Online (Sandbox Code Playgroud)

我创建另一个类:

  public class ListRoot { 
      public List<RootObject> status { get; set; } 
  }
Run Code Online (Sandbox Code Playgroud)

然后使用相同的方法:

ListRoot h = JsonConvert.DeserializeObject<ListRootObject>(string);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.你知道如何将这个Json数组解析为ac#class吗?

p.s*_*w.g 11

如果您只是将其反序列化为List<RootObject>:

var h = JsonConvert.DeserializeObject<List<RootObject>>(string);
Run Code Online (Sandbox Code Playgroud)

或者一个数组:

var h = JsonConvert.DeserializeObject<RootObject[]>(string);
Run Code Online (Sandbox Code Playgroud)

如果要反序列化a ListRoot,JSON需要如下所示:

{
    "status": [
        {
            "text": "Sample Text",
            ...
        },
        {
            "text": "Another Sample Text",
            ...
        }
    ] 
}
Run Code Online (Sandbox Code Playgroud)