【问题标题】:c# get nested data value from json object [duplicate]c#从json对象获取嵌套数据值[重复]
【发布时间】:2021-05-03 13:02:44
【问题描述】:

您好,我有一个包含嵌套数据的 json 对象,如下所示

{
"key1":"test",
"key2":{
  "key3" :"test2"
 }
}

我有一个如下列表

  List<string> listkeys=  new List<string>() {"key1","key2.key3" }

我想进入 listkeys 循环并动态从 json 对象中获取值。

foreach (int element in listkeys)
{
    //how can I get value with element
}

我找不到任何解决方案。

提前致谢

【问题讨论】:

标签: c#


【解决方案1】:

对于 Json.NET,我推荐 SelectToken。请参阅Querying JSON with SelectToken

foreach (var element in listkeys) // btw. var/string, not `int`
{
    JToken j = o.SelectToken($"$..{element}");
}

【讨论】:

  • 这正是我想要的。非常感谢:)
【解决方案2】:

假设你使用JSON.net来解析Json,你可以这样做。

foreach (string element in listkeys) // Quick fix, listkeys stores strings, not integers
{
    string[] keys = element.split("."); // "key2.key3" => ["key2", "key3"]
    JObject obj = <jsonObject>;
    foreach (string key in keys) // When key = "key2", obj = <jsonObject>["key2"], when key = "key3", obj = <jsonObject>["key2"]["key3"]
        obj = obj[key];
    <do something with obj>
}

只需将 jsonObject 替换为您的 Json 对象即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多