gpt4 book ai didi

c# - 如何使用 C# 在 Json 中通过键的名称获取值列表

转载 作者:行者123 更新时间:2023-11-30 16:37:31 25 4
gpt4 key购买 nike

我有一个 Json 文件如下

{
"objectId": "123",
"properties": {
"objectId": "456"
},
"variables": [
{
"objectId": "789"
},
{
"objectId": "012"
}
]

}

我想获取列表中的所有“objectId”,例如 [ "123", "456", "789", "012"]

我试过如下

var body = JObject.Parse(jsonString); //using Newtonsoft library
var list = body.Properties().Where(p => p.Name == "objectId").Select(p => p.Value).ToList();

我也试过下面的方法

var list = new List<string>();
foreach(var prop in body.Properties())
{
if(prop.Name == "objectId")
{
list.Add(prop.Value.ToString());
}
}

但在这里我只得到一级属性。

最佳答案

使用 DescendantsAndSelf().OfType() 获取所有 JProperties,然后使用 LINQ 进行过滤。

var root = (JContainer)JToken.Parse(json);
var list = root.DescendantsAndSelf().OfType<JProperty>().Where(p => p.Name == "objectId").Select(p => p.Value.Value<string>());
Console.WriteLine(string.Join(",", list.ToArray()));

关于c# - 如何使用 C# 在 Json 中通过键的名称获取值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57781809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com