JSON.NET:从JProperty Value

时间:2016-07-05 15:14:29

标签: json.net

我被困在某事上:

我使用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参数的函数?

1 个答案:

答案 0 :(得分:7)

获取Value的{​​{1}},JProperty,然后查看其JToken。此属性将告诉您令牌是否为Object,Array,String等。如果令牌类型为Object,则只需将其转换为Type并将其传递给您的函数即可。如果令牌类型不是Object,并且您的函数必须包含JObject,那么您需要将值包装在JObject中以使其正常工作。

JObject