检查位置数组是否包含另一个数组
请看下面的代码。 我正在阅读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