从最后一个JSON对象获取值

时间:2017-09-18 18:17:20

标签: json excel vba excel-vba

在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

非常感谢你!

1 个答案:

答案 0 :(得分:2)

此处您的JSON对象是字典集合(每个字典代表源JSON数组中的对象元素)

Collection具有Count属性,因此这将为您提供所需内容:

ID = JSON(JSON.Count)("testRunID")