检查位置数组是否包含另一个数组

请看下面的代码。 我正在阅读JSON使用这个很好的代码 ,但是,我现在试图将结果数组转储到列/行。 我返回的一些JSON值包含数组(例如“cat_list”下方)。

我无法理解为什么在下面的代码中:

MsgBox "ITEM VALUE... " & p("data")(Row)(Col_Data)(1) 

显示值“20”(对于下面的JSONinput是正确的),但代码片段:

 If IsArray(p("data")(Row)(Col_Data)) Then 

parsing为FALSE,然后导致代码的ELSE部分失败。 为什么IsArray无效?

我的JSONinput如下所示:

 {... "layout_file":"category.html","cat_list":[20, 30, 25], ...} 

代码片段:

 Row = 1 For Each Item In p("data") Col = 1 For Each Col_Data In p("data")(Row) If Col_Data = "cat_list" Then MsgBox "ITEM VALUE... " & p("data")(Row)(Col_Data)(1) <-- SUCCESSFULLY PRINTS SUB-ARRAY VALUE "20" End If If IsArray(p("data")(Row)(Col_Data)) Then <-- FAILS TO DETECT SUB-ARRAY Cells(Row + 1, Col) = "[" For Each SubArrayData In p("data")(Row)(Col_Data)(SubArray) Cells(Row + 1, Col) = Cells(Row + 1, Col) & ", " & p("data")(Row)(Col_Data)(SubArray) Next SubArrayData Cells(Row + 1, Col) = Cells(Row + 1, Col) & "]" Else Cells(Row + 1, Col) = p("data")(Row)(Col_Data) <-- CODE FAILS HERE ONLY WHEN ITEM CONTAINS ARRAY, BUT SUCCESSFULLY PRINTS VALUE "20" IN MSG BOX ABOVE End If Col = Col + 1 Next Col_Data Row = Row + 1 Next Item 

谢谢!

使用IsArray()函数来检查一个variables是否是一个数组。

在这里输入图像说明

示例代码

 Sub testArray() Dim i() As Integer Dim j As Integer MsgBox IsArray(i) MsgBox IsArray(j) End Sub