使用 NewtonSoft Json 在 C# 中获取 JSON 的所有子项
Posted
技术标签:
【中文标题】使用 NewtonSoft Json 在 C# 中获取 JSON 的所有子项【英文标题】:Get all Childrens of a JSON in C# using NewtonSoftJson 【发布时间】:2020-09-17 15:27:31 【问题描述】:com 用户!
我的 Json:
我想给出所有名字 -> 用户名 1 和用户名。
我使用了 C# 和 newtonsoft.json
我希望有人可以帮助我。 我试过这样,但没有用:
"kind":"UserList",
"data":
"children":[
"name":"test1",
"author_flair_text":null,
"mod_permissions":[
"all"
],
"date":1506648472.0,
"rel_id":"rb_r8mbbr",
"id":"t2_x6piz",
"author_flair_css_class":null
,
"name":"username2",
"author_flair_text":null,
"mod_permissions":[
"all"
],
"date":1553842373.0,
"rel_id":"rb_18jmxnv",
"id":"t2_a64nduq",
"author_flair_css_class":null
]
dynamic obj = JsonConvert.DeserializeObject<dynamic>(source);
var mods = obj["data"]["children"].Children();
foreach (var mod in mods)
string modss = obj["data"]["children"][mods]["name"].ToString();
Console.WriteLine(modss);
【问题讨论】:
您应该提供您遇到的错误以及堆栈跟踪。更好的是,通过调试器运行它并单步执行每一行。这应该可以明确问题。 您拍的 json 缺少以 '' 开头,否则无效。 【参考方案1】:您已经有一个“mod
”作为对象。您需要做的就是访问“mod
”的“name
”属性。
dynamic obj = JsonConvert.DeserializeObject<dynamic>(source);
var mods = obj["data"]["children"].Children();
foreach (var mod in mods)
string modss = mod["name"].ToString();
Console.WriteLine(modss);
注意:您在问题中粘贴的 json 缺少开头的“”,没有它是无效的。
【讨论】:
以上是关于使用 NewtonSoft Json 在 C# 中获取 JSON 的所有子项的主要内容,如果未能解决你的问题,请参考以下文章
C#中使用Newtonsoft.Json序列化和反序列化自定义类对象
如何使用 C# 进行条件序列化 - NewtonSoft.Json
C# unity (发布到安卓端中使用)解析json字符串—使用微软官方的包Newtonsoft.Json