C#,JSON解析,动态变量.如何检查类型
本文关键字:检查 类型 何检查 JSON 解析 动态 变量 | 更新日期: 2023-09-27 18:24:19
我正在解析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!");
}
我在调试时检查了类型。当解析对象时obj
具有Type
属性,当解析数组时Array
具有Object
属性。然而,对于这两种情况,控制台输出都是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!");
}