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"]);

}
相关推荐
morning_judger2 分钟前
JavaScript封装演进史:从全局变量到闭包
开发语言·javascript
CoderYanger8 分钟前
A.每日一题——3606. 优惠券校验器
java·开发语言·数据结构·算法·leetcode
飛67915 分钟前
玩转 Flutter 自定义 Painter:从零打造丝滑的仪表盘动效与可视化图表
开发语言·javascript·flutter
利剑 -~17 分钟前
设计java高并安全类
java·开发语言
CoderYanger18 分钟前
D.二分查找-基础——744. 寻找比目标字母大的最小字母
java·开发语言·数据结构·算法·leetcode·职场和发展
柯南二号21 分钟前
【后端】【Java】一文详解Spring Boot 统一日志与链路追踪实践
java·开发语言·数据库
weixin_3077791327 分钟前
Jenkins Pipeline: Basic Steps 插件详解
开发语言·ci/cd·自动化·jenkins·etl
柯南二号30 分钟前
【后端】【Java】RESTful书面应该如何写
java·开发语言·restful
切糕师学AI31 分钟前
如何用 VS Code + C# Dev Kit 创建类库项目并在主项目中引用它?
开发语言·c#
JIngJaneIL33 分钟前
基于Java+ vueOA工程项目管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端