AaA*_*AaA 5 c# json .net-4.0 json.net deserialization
我有以下json字符串
[
{
"itemtype": "note",
"body": "some text"
},
{
"itemtype": "list",
"items": [
{
"item": "some text"
},
{
"item": "some text"
}
]
},
{
"itemtype": "link",
"url": "some link"
}
]
Run Code Online (Sandbox Code Playgroud)
我需要在C#中解析.我的字符串可能会返回这样的错误代码(或任何其他未知的错误代码)
{"Error":"You need to login before accessing data"}
Run Code Online (Sandbox Code Playgroud)
或者它可能只是一个空数组(没有数据)
[]
Run Code Online (Sandbox Code Playgroud)
这是我的代码
public void ParseData(string inStr) {
if (inStr.Trim() != "") {
dynamic result = JsonConvert.DeserializeObject(inStr);
if (result is Array) {
foreach (JObject obj in result.objectList) {
switch (obj.Property("itemtype").ToString()) {
case "list": // do something
break;
case "note": // do something
break;
case "link": // do something
break;
}
}
} else {
// ... read error messages
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题
在上面的代码result
永远不是类型Array
.事实上我也无法检查它的类型(我试过typeof).
题
如何检查字符串中是否有数组,如何检查其中是否有对象(请注意,这不是类型化的数组)
pet*_*ids 11
在JsonConvert.DeserializeObject
将您的JSON转换为一个JArray
,而不是一个Array
-更新您的支票:
if (result is JArray)
Run Code Online (Sandbox Code Playgroud)