当前位置:   article > 正文

C# 使用Newtonsoft.Json来读取JOSN数组_c#遍历json数组

c#遍历json数组

怎么在C#工程中安装Newtonsoft在这里就不提了,随便搜一下就有教程反正也是用NuGet包管理器安装。这里记录一下怎么读取JSON节点。

假如有如下JSON:

{
    "春哥": "纯爷们",
    "data": {
        "chun": 567890,
        "list": [
            {
                "id": "12345",
                "age": 5,
                "Job_number": 9049
            }
        ]
    }
}

刚开始学用这个Newtonsoft的时候别人的博客给出的演示例子是先声明一个类,然后实例化这个类,用访问类的数据成员的方式来访问JSON节点,这就比较麻烦了,Newtonsoft其实提供了直接把一整个JSON数据打包成一个JObject对象的方法,然后就可以像用类似数组的方式来访问这些节点。

首先导入支持库:

  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  1. string content="{\"春哥\": \"纯爷们\",\"data\": {\"chun\": 567890,\"list\": [{\"id\": \"12345\",\"age\": 5,\"Job_number\": 9049}]}}"
  2. JObject json = JObject.Parse(content);
  3. //读取春哥节点
  4. string enumGroupName = json["春哥"].ToString();
  5. Console.WriteLine($"春哥:{enumGroupName}");

那么要怎么访问list这个数组呢?这个数组是JSON里比较常见的套娃数据,例:

  1. string content="{\"春哥\": \"纯爷们\",\"data\": {\"chun\": 567890,\"list\": [{\"id\": \"12345\",\"age\": 5,\"Job_number\": 9049}]}}"
  2. JObject json = JObject.Parse(content);
  3. //虽然这个list数组里只有一个元素那也得写上索引
  4. string enumGroupName = json["data"]["list"][0]["id"].ToString();
  5. Console.WriteLine($"春哥:{enumGroupName}");

{
    "春哥": "纯爷们",
    "data": {
        "chun": 567890,
        "list": [
            {
                "id": "12343",
                "age": 3,
                "Job_number": 7039
            },

            {
                "id": "12347",
                "age": 4,
                "Job_number": 8029
            },

            {
                "id": "12340",
                "age": 5,
                "Job_number": 9089
            }
        ]
    }
}

如何遍历数组:

  1. foreach (var item in json["data"]["list"])
  2. {
  3. //遍历每一个{ }里的id节点
  4. Console.WriteLine(item["id"].ToString());
  5. }

传统的for循环遍历:

  1. var arrayProperty = (JArray)json["data"]["bet"];//获取数组长度
  2. int length = arrayProperty.Count;
  3. for (int i = 0; i < length; i++)
  4. {
  5. string vernoru = json["data"]["list"][i]["match_id"].ToString();
  6. Console.WriteLine(vernoru);
  7. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号