介绍
由于C#自带的JSON库不好用,所以使用 Newtonsoft.Json
Newtonsoft.Json是一款.net下的Json序列化/反序列化库,省去了手动拼Json的麻烦,可以通过官网或者NuGet下载
一层一层解析
{
"name": "steam",
"games": [
{
"name": "The Witcher 3",
"price": "63"
},
{
"name": "GTA5",
"price": "93"
}
],
"master": "G pan"
}
转成 JObject
string jsonStr = "{\"name\": \"steam\",\"games\":[{\"name\":\"The Witcher 3\",\"price\":\"63\"},{\"name\":\"GTA5\",\"price\":\"93\"}],\"master\":\"G pan\"}";
JObject json = JObject.Parse(jsonStr);
遍历
foreach(var item in json)
{
Console.WriteLine(item.Key + "," + item.Value);
}
JToken
JToken: 是 Newtonsoft.Json 库中所有JSON数据类型的基类,包括JObject、JArray、JValue等。它提供了通用的方法来访问、遍历和操作JSON数据。当你不确定JSON数据的具体类型时,可以使用JToken进行处理
使用
取出 name,返回的 JToken 类型
JToken nameJT = json["name"]
// 转成字符串
string name = nameJT.ToString()
JArray
表示一个JSON数组,即有序的值列表。数组中的元素可以是任何有效的JSON数据类型。JArray提供了添加、删除、查询和修改数组元素的方法
解析字符串并返回
JArray jArray = JArray.Parse("[1,2,3,4]");
从 JObject 取出数组
取出 games,并返回数组:
JArray arr = json["games"].ToArray()
根据索引取出元素
JToken item = arr[0]
参考:
https://blog.csdn.net/qq_41731938/article/details/84751446
https://blog.csdn.net/m0_73960651/article/details/137787708