在VBA中,我使用以下JSON转换器https://github.com/VBA-tools/VBA-JSON来解析简单的JSON响应。
但是,我有一个JSON响应,它有多个对象,我希望我的代码总是在最后一个(即更新的)对象中取值。
这是我的JSON:
[
{
"masterDataID": 26941,
"testRunID": 66929
},
{
"masterDataID": 26941,
"testRunID": 67485
},
{
"masterDataID": 26941,
"testRunID": 67926
}
]
正如您所看到的,对象没有明显的名称,所以我不得不使用数字来指定它们。
这是我的代码:
Public Sub GETID()
Dim http As Object, JSON As Object, i As Integer
Dim URL As String
URL = Range("B3")
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", URL, False
http.send
Set JSON = ParseJson(http.responseText)
ID = JSON(1)("testRunID")
Range("B4") = ID
End Sub
在
ID = JSON(1)("testRunID")
JSON(1)给我第一个对象(即ID = 66929)但是我希望得到最后一个对象,无论有多少个对象(可能通过计算对象的数量并做+1)...我担心我对VBA的了解非常基础:s
非常感谢你!
答案 0 :(得分:2)
此处您的JSON对象是字典集合(每个字典代表源JSON数组中的对象元素)
Collection具有Count
属性,因此这将为您提供所需内容:
ID = JSON(JSON.Count)("testRunID")