C#,JSON解析,动态变量。如何检查类型?
我正在解析JSON文本。有时我在文本中得到C#,JSON解析,动态变量。如何检查类型?,c#,parsing,json.net,typechecking,C#,Parsing,Json.net,Typechecking,我正在解析JSON文本。有时我在文本中得到数组,有时得到对象类型。我尝试按如下方式检查类型: dynamic obj = JsonConvert.DeserializeObject(text); //json text if (obj is Array) { Console.WriteLine("ARRAY!"); } else if (obj is Object) { Console.WriteLine("OBJECT!"); } 我在调试时检查了类型obj在解析对象时
数组
,有时得到对象
类型。我尝试按如下方式检查类型:
dynamic obj = JsonConvert.DeserializeObject(text); //json text
if (obj is Array)
{
Console.WriteLine("ARRAY!");
}
else if (obj is Object)
{
Console.WriteLine("OBJECT!");
}
我在调试时检查了类型obj
在解析对象时将Type
属性设置为Object
,在解析数组时将Array
属性设置为。然而,控制台输出是对象代码>适用于这两种情况。很明显,我在用错误的方式检查类型。检查类型的正确方法是什么
编辑
JSON内容:
在这两种情况下,我得到的输出都是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!");
}