gpt4 book ai didi

c# - 使用 C# 读取 json 值而不使用属性

转载 作者:行者123 更新时间:2023-12-04 00:20:42 26 4
gpt4 key购买 nike

我需要从以下 JSON 响应字符串中读取 id 100000 的 testCase.name 的值。

response = {
"count": 2,
"value": [
{
"id": 100000,
"project": {
"id": "aaaa-bbbb-cccc-dddd",
"name": "MyTestProject",
"url": "https://dev.azure.com/MyOrg/_apis/projects/MyTestProject"
},
"testCase": { "name": "GetProjectTeamDetails" }
},
{
"id": 100001,
"project": {
"id": "aaaa-bbbb-cccc-dddd",
"name": "MyTestProject",
"url": "https://dev.azure.com/MyOrg/_apis/projects/MyTestProject"
},
"testCase": { "name": "QueueBuild" }
}
]
}

我尝试了以下代码但无法实现:尝试 1:

JObject o = JObject.Parse(response)
string testCaseName= (string)o["values"][0];

尝试2:

 JObject jObject = JObject.Parse(response);
string displayName = (string)jObject.SelectToken("testCase.name");

最佳答案

你可以使用

var jo = JObject.Parse(json);
var testCaseName = (string)jo.SelectToken($"$.value[?(@id=={idToSearch})].testCase.name");

更新

根据您在评论中提出的问题,您可以使用以下方式找到带有测试用例名称的 ID

jo.SelectTokens($"$.value[?(@testCase.name=='{nameToSearch}')].id")

请注意,在这种情况下,您需要使用 .SelectTokens,因为在 OP 中的示例中可能会出现重复。您可以根据您的要求获得所有结果或第一个结果。

var idList  = jo.SelectTokens($"$.value[?(@testCase.name=='{nameToSearch}')].id")
.Select(x=> long.Parse(x.ToString()));
var onlyFirst = (long)jo.SelectTokens($"$.value[?(@testCase.name=='{nameToSearch}')].id")
.First();

关于c# - 使用 C# 读取 json 值而不使用属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60911010/

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