请看下面的代码。我正在使用这段代码读取 JSON ,效果很好,但是,我现在正试图将结果数组转储到列/行中。我返回的一些 JSON 值中包含数组(“cat_list”下方的示例)。
我无法理解以下代码中的原因:
MsgBox "ITEM VALUE... " & p("data")(Row)(Col_Data)(1)
显示值“20”(这对于下面的 JSON 输入是正确的),但代码片段:
If IsArray(p("data")(Row)(Col_Data)) Then
解析为 FALSE,然后导致代码的 ELSE 部分失败。为什么 IsArray 不起作用?
我的 JSON 输入如下所示:
{... "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
谢谢!