C#,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在解析对象时

我正在解析JSON文本。有时我在文本中得到
数组
,有时得到
对象
类型。我尝试按如下方式检查类型:

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!");
  }