【问题标题】:Get all Childrens of a JSON in C# using NewtonSoftJson使用 NewtonSoft Json 在 C# 中获取 JSON 的所有子项
【发布时间】: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 缺少以 '{' 开头,否则无效。

标签: c# json parsing


【解决方案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 缺少开头的“{”,没有它是无效的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2020-12-13
    相关资源
    最近更新 更多