C# Json遍历
本帖最后由 hl301 于 2022-6-18 22:41 编辑{
"code": 1,
"msg": "success",
"body": {
"periods": [
{
"id": 103281,
"name": "典礼",
"periodStatus": "finish",
"beginDate": 1648209600000,
"endDate": 1648215000000,
"isFreeStudy": false,
"sort": 1
},
{
"id": 103282,
"name": "入门",
"periodStatus": "finish",
"beginDate": 1648296000000,
"endDate": 1648301400000,
"isFreeStudy": false,
"sort": 2
},
{
"id": 103283,
"name": "辅导",
"periodStatus": "finish",
"beginDate": 1648641600000,
"endDate": 1648647000000,
"isFreeStudy": false,
"sort": 3
},
C#引用Newtonsoft.Json如何获取所有body.periods.Name数据呢
查找了百度还是没解决,特来向论坛各位大佬求助。 引入他的linq然后使用jobj和jtoken即可 jidesheng6 发表于 2022-6-18 23:18
引入他的linq然后使用jobj和jtoken即可
大佬,能帮忙给写下么?因为我在百度好长时间,实在没辙跑来论坛问了,拜托了。 hl301 发表于 2022-6-18 23:20
大佬,能帮忙给写下么?因为我在百度好长时间,实在没辙跑来论坛问了,拜托了。
简单来说,就是先使用using Newtongsof.Json.Linq
然后使用jobject.parse来把你的字符串转换为json数据,每个数据都是jtoken有的可以是jarray,我有点记不清了,最近没用过它了,可能记不清了,但是你在百度上去搜索这个类库加上Linq和Jobject应该可以找到相关的例子。 jidesheng6 发表于 2022-6-18 23:23
简单来说,就是先使用using Newtongsof.Json.Linq
然后使用jobject.parse来把你的字符串转换为json数据 ...
谢了,我查查。 你这个Json不全,针对你现在的这个Json,可以用的代码是
static Root JsonDeserialize(string JsonString)
{
return Newtonsoft.Json.JsonConvert.DeserializeObject<Root>(JsonString);
}
public class Root
{
/// <summary>
///
/// </summary>
public int code { get; set; }
/// <summary>
///
/// </summary>
public string msg { get; set; }
/// <summary>
/// body
/// </summary>
public Body body { get; set; }
public class Body
{
/// <summary>
/// periods
/// </summary>
public List<Periods> periods { get; set; }
public class Periods
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 典礼
/// </summary>
public string name { get; set; }
/// <summary>
///
/// </summary>
public string periodStatus { get; set; }
/// <summary>
///
/// </summary>
public long beginDate { get; set; }
/// <summary>
///
/// </summary>
public long endDate { get; set; }
/// <summary>
///
/// </summary>
public string isFreeStudy { get; set; }
/// <summary>
///
/// </summary>
public int sort { get; set; }
}
}
}
对了,你这个Json末尾我加了一点,不然解析不出来
{
"code": 1,
"msg": "success",
"body": {
"periods": [
{
"id": 103281,
"name": "典礼",
"periodStatus": "finish",
"beginDate": 1648209600000,
"endDate": 1648215000000,
"isFreeStudy": false,
"sort": 1
},
{
"id": 103282,
"name": "入门",
"periodStatus": "finish",
"beginDate": 1648296000000,
"endDate": 1648301400000,
"isFreeStudy": false,
"sort": 2
},
{
"id": 103283,
"name": "辅导",
"periodStatus": "finish",
"beginDate": 1648641600000,
"endDate": 1648647000000,
"isFreeStudy": false,
"sort": 3
}
]
}
}
方法是 先去https://www.toolscat.com/json/json-csharp,把你的Json粘贴进去,如果格式正确的话,就能生成实体类
把实体类一个个复制到代码里面去
然后调用Newtonsoft.Json.JsonConvert.DeserializeObject<Root>(JsonString);就能反而你要的数据了 先建模,然后直接 反序列化成这个模型就行了
另外建议用 System.Text.Json cdj68765 发表于 2022-6-18 23:45
你这个Json不全,针对你现在的这个Json,可以用的代码是
static Root J ...
我是通过VS将json粘贴为实体类,还是无法取出,还是谢过兄弟了。 ykrne 发表于 2022-6-18 23:50
先建模,然后直接 反序列化成这个模型就行了
另外建议用 System.Text.Json
哥们,能否给个例程。 我用的LitJson,不用建实体类,将json作为字符串解析就行了
using System;
using LitJson;
public class Program {
public static void Main() {
string json = @"{
'code': 1,
'msg': 'success',
'body': {
'periods': [
{
'id': 103281,
'name': '典礼'
},
{
'id': 103282,
'name': '典礼2'
}
]
}
}";
var res = JsonMapper.ToObject(json);
for (var i = 0; i < res["body"]["periods"].Count; i++) {
Console.WriteLine(res["body"]["periods"]["name"]);
}
}
}
页:
[1]
2