我被困在某事上:
我使用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。问题是酒店属性名称可能是单个值(例如,字符串),或者它可能是JSON对象或JSON数组。
如何将属性的值转换为JObject变量,以便将其传递给另一个接受JObject参数的函数?
答案 0 :(得分:7)
获取Value
的{{1}},JProperty
,然后查看其JToken
。此属性将告诉您令牌是否为Object,Array,String等。如果令牌类型为Object,则只需将其转换为Type
并将其传递给您的函数即可。如果令牌类型不是Object,并且您的函数必须包含JObject
,那么您需要将值包装在JObject
中以使其正常工作。
JObject