我的JSON是:
{"totalCount":431,"messages":[],"results":[{"aliasList":["User Id","Name","last name"],"results":[[71512,"joe","adams"],[23445,"jack","wilson"],[34566,jill,goodman]],"executionDate":151134568428}],"Class":"com.zoho.controlpanel.reports.ReportsItemVO"}
我想解析对象,例如第二个[71512,"joe","adams"]
密钥内的results
。
这是我尝试调用JSON-VBA解析器:
Public Sub exceljson()
Dim http As Object, JSON As Object, i As Integer
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "http://controlpanel.zoho.verio/rest/reports/search/reports-call-center-my-assignments", False
http.send
Set JSON = ParseJson(ParseJson(http.responseText)("results"))("results")
Debug.Print JSON
i = 2
For Each Item In JSON
Sheets(5).Cells(i, 1).Value = Item("1")
Sheets(5).Cells(i, 2).Value = Item("2")
Sheets(5).Cells(i, 3).Value = Item("3")
i = i + 1
Next
MsgBox ("complete")
End Sub
我收到错误
运行时错误450错误的参数数
我应该在解析器中修改哪些内容以将这些对象正确解析为电子表格?
答案 0 :(得分:2)
我运行了以下代码,该代码已更正且工作正常。我无法打开URL,但是我已将您给出的jason字符串粘贴到单元格“P1”中。吉尔,古德曼手动用双引号括起来,因为它错了。我已经评论了您可以在需要时使用的某些代码部分。
Public Sub exceljson()
Dim http As Object, JSON As Object, Item As Variant
Dim i As Integer
'Set http = CreateObject("MSXML2.XMLHTTP")
jsnStr = Range("P1")
'http.Open "GET", "http://controlpanel.zoho.verio/rest/reports/search/reports-call-center-my-assignments", False
'http.send
'Debug.Print http.responseText
'Set JSON = ParseJson(http.responseText)
Set JSON = ParseJson(jsnStr)
'Fetching data
i = 2
For Each Item In JSON("results")(1)("results")
Sheets(2).Cells(i, 1).Value = Item(1)
Sheets(2).Cells(i, 2).Value = Item(2)
Sheets(2).Cells(i, 3).Value = Item(3)
i = i + 1
Next
Set JSON = Nothing
Set http = Nothing
End Sub