正在 VBA 中解析 JSON 对象
Parsing a JSON Object in VBA
我正在解析 VBA 中的 JSON 对象。我在这个论坛上找到了一个很好用的代码示例。但是,对象中的字段之一是 "total"。在我的代码中,我试图获得总数,但 "total" 正在切换为 "Total"。我在运行时收到错误 438。这是代码片段:
Dim Issues As Object
Dim scriptControl As Object
Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
scriptControl.Language = "JScript"
Set ObjHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://<url>.com:10005/rest/api/2/search"
ObjHTTP.Open "POST", URL, False
ObjHTTP.SetRequestHeader "Authorization", "Basic <userid / password>"
ObjHTTP.SetRequestHeader "Content-Type", "application/json"
'Get the new work intake for the month.
ObjHTTP.send ("{""jql"":""<my query here>"":[""id""],""maxResults"":1}")
strX = ObjHTTP.responsetext
Set Issues = scriptControl.Eval("(" + strX + ")")
With Sheets("Test")
.Cells(1, 1) = Issues.expand --this works
.Cells(1, 2) = Issues.startAt --this works
.Cells(1, 3) = Issues.maxResults -- this works
.Cells(1, 4) = Issues.Total -- JSON object is "total" editor keeps switching to "Total"
End With
有谁知道为什么我不能使用 Issues.total?
借用链接的问题,这样的事情应该有效:
'....
strX = ObjHTTP.responsetext
scriptControl.Eval("var o = (" + strX + ");")
scriptControl.AddCode "function getProp(propName) { return o[propName]; } "
With Sheets("Test")
.Cells(1, 1) = scriptControl.Run("getProp", "expand")
.Cells(1, 2) = scriptControl.Run("getProp", "startAt")
.Cells(1, 3) = scriptControl.Run("getProp", "maxResults")
.Cells(1, 4) = scriptControl.Run("getProp", "total")
End With
话虽如此,您应该改为使用此代码:https://github.com/VBA-tools/VBA-JSON
我正在解析 VBA 中的 JSON 对象。我在这个论坛上找到了一个很好用的代码示例。但是,对象中的字段之一是 "total"。在我的代码中,我试图获得总数,但 "total" 正在切换为 "Total"。我在运行时收到错误 438。这是代码片段:
Dim Issues As Object
Dim scriptControl As Object
Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
scriptControl.Language = "JScript"
Set ObjHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "http://<url>.com:10005/rest/api/2/search"
ObjHTTP.Open "POST", URL, False
ObjHTTP.SetRequestHeader "Authorization", "Basic <userid / password>"
ObjHTTP.SetRequestHeader "Content-Type", "application/json"
'Get the new work intake for the month.
ObjHTTP.send ("{""jql"":""<my query here>"":[""id""],""maxResults"":1}")
strX = ObjHTTP.responsetext
Set Issues = scriptControl.Eval("(" + strX + ")")
With Sheets("Test")
.Cells(1, 1) = Issues.expand --this works
.Cells(1, 2) = Issues.startAt --this works
.Cells(1, 3) = Issues.maxResults -- this works
.Cells(1, 4) = Issues.Total -- JSON object is "total" editor keeps switching to "Total"
End With
有谁知道为什么我不能使用 Issues.total?
借用链接的问题,这样的事情应该有效:
'....
strX = ObjHTTP.responsetext
scriptControl.Eval("var o = (" + strX + ");")
scriptControl.AddCode "function getProp(propName) { return o[propName]; } "
With Sheets("Test")
.Cells(1, 1) = scriptControl.Run("getProp", "expand")
.Cells(1, 2) = scriptControl.Run("getProp", "startAt")
.Cells(1, 3) = scriptControl.Run("getProp", "maxResults")
.Cells(1, 4) = scriptControl.Run("getProp", "total")
End With
话虽如此,您应该改为使用此代码:https://github.com/VBA-tools/VBA-JSON