我有一个大的json文件,它有5个子节点,其中4个是对象,一个是数组。
当我循环浏览它们时,我用下面的代码点击数组,但它失败了,抱怨对象不是"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.
}
你可以
改用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>();
}