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

标签 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,
  }

到我的 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# 类吗?

最佳答案

如果您简单地将其反序列化为 List<RootObject>,您所拥有的 JSON 将有效。 :

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

或者一个数组:

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

如果你想反序列化一个ListRoot ,JSON 需要如下所示:

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

关于c# - 将 Json 数组解析为 C# 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446048/

相关文章:

c# - "?."运算符除了检查 null 之外还会做其他事情吗?

c# - 单例范围绑定(bind)未按预期工作

javascript - 跨浏览器 "inArray"函数(没有 jQuery)

json - 使用现有字段作为 mongodb 中的 objectId 来使用 Node 和 Express 创建 REST api?

JavaScript JSON 输出

c# - 文件被复制然后提示它不存在

c# - 表达式树知道日期是否在 C# 中的 2 个日期之间

python - 在 numpy 数组中设置空值

python - 从 numpy 结构化数组(数组中的元组列表)中删除列?

javascript - 如何在ajax调用中每次点击按钮后刷新表格