Arrays Json中的访问响应
我正在使用解析一个大的JSON响应,但我无法按预期访问响应的元素 例如,响应具有以下结构:Arrays Json中的访问响应,arrays,json,excel,vba,Arrays,Json,Excel,Vba,我正在使用解析一个大的JSON响应,但我无法按预期访问响应的元素 例如,响应具有以下结构: {employees: [{employeeId: {id: 1234}, personNumber: "ABC123", shortName: "Bob",...},...],...} 我试过: Dim JsonPayload As Object Set JsonPayload = JsonConverter.ParseJson(req.ResponseText
{employees: [{employeeId: {id: 1234}, personNumber: "ABC123", shortName: "Bob",...},...],...}
我试过:
Dim JsonPayload As Object
Set JsonPayload = JsonConverter.ParseJson(req.ResponseText)
MsgBox JsonPayload("dict_pDictionary")
MsgBox JsonPayload("employees")(1)("employeeId")
而且:
Set emp = JsonPayload("employees")
For Each e In emp
Debug.Print "employee", e.shortName
Debug.Print "shortName", e
Debug.Print "shortName", e.dict_pDictionary
Next e
错误是对象不支持此属性或方法。
我想知道如何循环响应。有些是variant/object/dictionary,其他部分似乎是variant/object/collection
VBA JSON将对象({}
)转换为字典,将数组([]
)转换为集合
在您的代码中,e
是字典对象,而不是具有命名属性的对象,因此:
Dim jso作为对象、EMP、e
设置jso=JsonConverter.ParseJson(_
“{”“雇员”“:[{”“雇员id”“:{”“id”“:1234}”“人号”“:”“ABC123”“简称”“:”“鲍勃”“}]}”)
设置emps=jso(“员工”)
对于EMP中的每个e
Debug.Print e(“employeeId”)(“id”)>>1234
Debug.Print e(“shortName”)'>>Bob
下一个e