为什么可以';我给一个变量分配了一个JSON值,我可以在调试模式下看到这个值吗?
我遇到了从非逐项JSON对象检索值的问题。我认为这样做很简单……只需使用您想要的字段(例如JSON(“title”)引用对象即可。但我无法检索值,即使它存在 这段代码演示了我所说的。(请确保在“下一行”上放置一个断点,否则它将运行一段时间。)strID和strTitle值不会被分配,也不会打印出来。但是如果您转到立即窗口并键入 ?JSON2(“ID”) ?JOON2(“头衔”) 你得到了这些值。我做错了什么?为什么我不能把这些值转换成变量为什么可以';我给一个变量分配了一个JSON值,我可以在调试模式下看到这个值吗?,json,ms-access,Json,Ms Access,我遇到了从非逐项JSON对象检索值的问题。我认为这样做很简单……只需使用您想要的字段(例如JSON(“title”)引用对象即可。但我无法检索值,即使它存在 这段代码演示了我所说的。(请确保在“下一行”上放置一个断点,否则它将运行一段时间。)strID和strTitle值不会被分配,也不会打印出来。但是如果您转到立即窗口并键入 ?JSON2(“ID”) ?JOON2(“头衔”) 你得到了这些值。我做错了什么?为什么我不能把这些值转换成变量 Sub testMovie2() Dim Url As
Sub testMovie2()
Dim Url As String, data As String, data2 As String
Dim xml As Object, JSON As Object, JSON2 As Object, colObj As Object, colobj2 As Object, item, item2
Dim strID As String, strTitle As String
Url = "https://www.tiff.net/data/films-events-2018.json"
data = getHTTP(Url)
Set JSON = JsonConverter.ParseJson(data)
Set colObj = JSON("items")
For Each item In colObj
Url = "https://www.tiff.net/data/films/" & item("id") & ".JSON"
data2 = getHTTP(Url)
Set JSON2 = JsonConverter.ParseJson(data2)
strID = JSON2("ID")
Debug.Print strID
strTitle = JSON2("Title")
Debug.Print strTitle
Next
End Sub
JSON2
是一个命令式对象,用于从下面的命令式用法中检索元素
带按键
JSON2.item(“id”)
JSON2.项目(“标题”)
或
带有索引
JSON2.Items()(4)
JSON2.Items()(5)
默认情况下,字典对象区分大小写 所以
JSON2(“ID”)
不等于JSON2(“ID”)
要使其不区分大小写,请使用:
JSON2.CompareMode=vbTextCompare
代码:
Sub testMovie2()
Dim url As String, data As String, data2 As String
Dim xml As Object, JSON As Object, JSON2 As Object, colObj As Object, colobj2 As Object, item, item2
Dim strID As String, strTitle As String
url = "https://www.tiff.net/data/films-events-2018.json"
data = getHTTP(url)
Set JSON = JsonConverter.ParseJson(data)
Set colObj = JSON("items")
For Each item In colObj
url = "https://www.tiff.net/data/films/" & item("id") & ".JSON"
data2 = getHTTP(url)
Set JSON2 = JsonConverter.ParseJson(data2)
strID = JSON2.item("id")
Debug.Print strID
strTitle = JSON2.item("title")
Debug.Print strTitle
Next
End Sub
Function getHTTP(url) As String
Dim data As String
Dim xml As Object
Set xml = CreateObject("MSXML2.ServerXMLHTTP")
With xml
.Open "GET", url, False
.setRequestHeader "Content-Type", "text/json"
.send
data = .responseText
End With
getHTTP = data
End Function
什么是
getHTTP()
?可能还没有完成吗?他又来了!我认为在这三个线程中,在VBA中使用JSON的信息比在其他网络空间中使用JSON的信息要多。我不敢相信我现在获取所需数据的速度有多快。一件小事——JSON2.CompareMode=vbTextCompare语句似乎不起作用k、 你还用“text/json”回避了我的下一个问题参数。我无法识别最终结果文本字段中外来字符的格式,但必须有一种方法使它们在网站上正确显示。我会花大量时间详细说明问题和我尝试过的内容。多谢!