C# 使用Newtonsoft.Json来读取JOSN数组

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

假如有如下JSON:

{

"春哥": "纯爷们",

"data": {

"chun": 567890,

"list": [

{

"id": "12345",

"age": 5,

"Job_number": 9049

}

]

}

}

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

首先导入支持库:

cs 复制代码
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
cs 复制代码
string content="{\"春哥\": \"纯爷们\",\"data\": {\"chun\": 567890,\"list\": [{\"id\": \"12345\",\"age\": 5,\"Job_number\": 9049}]}}"
JObject json = JObject.Parse(content);

//读取春哥节点
string enumGroupName = json["春哥"].ToString();
Console.WriteLine($"春哥:{enumGroupName}");

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

cs 复制代码
string content="{\"春哥\": \"纯爷们\",\"data\": {\"chun\": 567890,\"list\": [{\"id\": \"12345\",\"age\": 5,\"Job_number\": 9049}]}}"
JObject json = JObject.Parse(content);

//虽然这个list数组里只有一个元素那也得写上索引
string enumGroupName = json["data"]["list"][0]["id"].ToString();
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

}

]

}

}

如何遍历数组:

cs 复制代码
foreach (var item in json["data"]["list"])
{
    //遍历每一个{ }里的id节点
    Console.WriteLine(item["id"]);

}
相关推荐
程序设计实验室21 小时前
C# 扩展方法只会写 this 吗?C# 14 新语法直接把扩展方法玩出了花
c#
唐青枫1 天前
C#.NET SignalR 深入解析:实时通信、Hub 与连接管理实战
c#·.net
唐宋元明清21881 天前
.NET Win32磁盘动态卷/跨区卷触发“函数不正确”问题排查
windows·c#·存储
hez20101 天前
Satori GC:同时做到高吞吐、低延时和低内存占用
c#·.net·.net core·gc·clr
唐青枫2 天前
C#.NET Channel 深入解析:高性能异步生产者消费者模型实战
c#·.net
小峥降临3 天前
Rokid UXR 的手势追踪虚拟中更真实的手实战开发【含 工程源码 和 最终完成APK】
c#
晨星shine7 天前
GC、Dispose、Unmanaged Resource 和 Managed Resource
后端·c#
用户298698530147 天前
.NET 文档自动化:Spire.Doc 设置奇偶页页眉/页脚的最佳实践
后端·c#·.net
用户3667462526747 天前
接口文档汇总 - 2.设备状态管理
c#
用户3667462526747 天前
接口文档汇总 - 3.PLC通信管理
c#