gpt4 book ai didi

JSON.NET:从 JProperty 值获取 JObject

转载 作者:行者123 更新时间:2023-12-04 22:57:44 27 4
gpt4 key购买 nike

我被困在某件事上:

我使用 JObject.Load 反序列化了一个 JSON 文件:

// get the JSON into an object 
JObject jsonObject = JObject.Load(new
JsonTextReader(new StreamReader("mydoc.json")));

美好的。我现在有一个填充的 jsonObject。

现在我遍历它的属性是这样的:
foreach (JProperty jsonRootProperty in jsonObject.Properties())
{
if (jsonRootProperty.Name=="Hotel")
{
... !!! I just want a JObject here...
}
}

一旦找到名称等于“Hotel”的属性,我希望该属性的值作为 JObject。问题在于 Hotel 属性名称可能是单个值(例如字符串),也可能是 JSON 对象或 JSON 数组。

如何将属性的值放入 JObject 变量中,以便将其传递给另一个接受 JObject 参数的函数?

最佳答案

获取 ValueJProperty ,这是一个 JToken ,并查看其 Type .这个属性会告诉你 token 是对象、数组、字符串等。如果 token 类型是对象,那么你可以简单地将它转换为 JObject并将其传递给您的函数。如果 token 类型不是 Object 并且您的函数必须具有 JObject ,那么您需要将该值包装在 JObject 中为了使它工作。

foreach (JProperty jsonRootProperty in jsonObject.Properties())
{
if (jsonRootProperty.Name=="Hotel")
{
JToken value = jsonRootProperty.Value;
if (value.Type == JTokenType.Object)
{
FunctionThatAcceptsJObject((JObject)value);
}
else
{
FunctionThatAcceptsJObject(new JObject(new JProperty("value", value)));
}
}
}

关于JSON.NET:从 JProperty 值获取 JObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207050/

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