Var*_*lex 4 c# parsing typechecking json.net
我正在解析JSON文本.有时我会得到Array
并且有时会Object
在文本中输入.我试着检查类型如下:
dynamic obj = JsonConvert.DeserializeObject(text); //json text
if (obj is Array)
{
Console.WriteLine("ARRAY!");
}
else if (obj is Object)
{
Console.WriteLine("OBJECT!");
}
Run Code Online (Sandbox Code Playgroud)
我在调试时检查了类型.在解析对象和解析数组时obj
具有Type
属性.但是,控制台输出适用于这两种情况.显然我正在以错误的方式检查类型.检查类型的正确方法是什么?Object
Array
OBJECT!
编辑
JSON内容:
[ {"ticket":"asd", ...}, {..} ]
要么 { "ASD":{...}, "SDF":{...} }
在这两种情况下,我得到输出为OBJECT!
.
编辑#2
我改变了@Houssem建议的类型检查顺序.产量仍然相同.因此我也改变了OP.我的代码就是这样,我仍然得到相同的结果.
试试这个,因为JSON.NET返回一个JToken类型的对象
if (((JToken)obj).Type == JTokenType.Array)
{
Console.WriteLine("ARRAY!");
}
else if (((JToken)obj).Type == JTokenType.Object)
{
Console.WriteLine("OBJECT!");
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7508 次 |
最近记录: |