gpt4 book ai didi

.net - 查找 Json.NET 中的任意节点

转载 作者:行者123 更新时间:2023-12-03 03:14:54 24 4
gpt4 key购买 nike

我正在使用 NewtonSoft Json.NET 库来解析 .NET 应用程序中的 JSON 文件。我需要做的是传递节点的名称,并获取该节点(如果存在),无论其级别如何(事先未知)。

例如在文件中:

string json = @"{
""Name"": ""Apple"",
""Expiry"": new Date(1230422400000),
""Price"": 3.99,
""ATest"": {
""MyTest"":
[
""blah"",
""blah""
]
}
}";

有没有办法只使用值"MyTest"来获取该节点,而不必知道父节点的名称,例如jObject["ATest"]["MyTest"][0 ]

最佳答案

据我所知,JToken/JObject 没有类似 XPath 的查询语法,但您可以相当轻松地创建一个 - 请参阅下面的代码。

public static class StackOverflow_13033174
{
public static void Test()
{
string json = @"{
""Name"": ""Apple"",
""Expiry"": new Date(1230422400000),
""Price"": 3.99,
""ATest"": {
""MyTest"":
[
""blah"",
""blah""
]
}
}";

JObject jo = JObject.Parse(json);
JToken myTest = jo.Descendants()
.Where(t => t.Type == JTokenType.Property && ((JProperty)t).Name == "MyTest")
.Select(p => ((JProperty)p).Value)
.FirstOrDefault();
Console.WriteLine(myTest);
}
}

关于.net - 查找 Json.NET 中的任意节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13033174/

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