解析包含数组和对象的json文件

时间:2014-12-02 17:03:05

标签: c# asp.net json json.net

我有一个大的json文件,它有5个子节点,其中4个是对象,1个是数组。

当我循环浏览它时,我使用下面的代码命中数组并且它失败了,抱怨该对象不是' jObject'类型。如果我把JArray它修复它但我不知道如何预先检查json是jObject还是jArray?

for (int i = 0; i < jsonChildObjectsArray.Length; i++)
{
    string jsonCategoryContents = json[jsonChildCategorysArray[i]].ToString();
    jsonChildObjectsArray[i] = jsonCategoryContents;        
    JObject jsonCategoryObject = JObject.Parse(jsonCategoryContents); 
           //error's here on 5th element as it is a jArray type.
}

1 个答案:

答案 0 :(得分:2)

您可以改为使用JToken.Parse

JToken token = JToken.Parse(jsonCategoryContents);

if (token.Type == JTokenType.Object) 
{
    JObject jsonCategoryObject = token.ToObject<JObject>();
}
else if (token.Type == JTokenType.Array)
{
    JArray jsonCategoryArray = token.ToObject<JArray>();
}