【问题标题】:JsonConverter Excel VBA multiple resultsJsonConverter Excel VBA 多个结果
【发布时间】:2023-03-16 07:36:01
【问题描述】:

一个小问题:我正在使用来自 Github 的 JsonConverter。 (https://github.com/VBA-tools/VBA-JSON/blob/master/JsonConverter.bas)

代码正在处理大部分“GET”请求。 只有当相同的“列”在“ResponseText”中多次出现时,它才不是。 (如示例中的“imei”)

所以我需要一种方法来处理长的“响应文本”来填充访问数据库中的多行。

Dim Json As Object
Set Json = JsonConverter.ParseJson(xmlhttp.ResponseText)
MsgBox (Json("imei")) 'temp

错误 5:过程或调用参数无效。

有什么想法吗?

非常感谢,

【问题讨论】:

  • 请发布您遇到问题的 JSON 响应。
  • 另外,显示一些预期的输出,因为您提到这应该输入 Access db,因此了解行的输出格式很重要。

标签: json vba ms-access


【解决方案1】:

我只能提供部分答案,因为如果没有完整的 JSON 响应文本,我无法重新创建它:

JSON 中具有多个值的响应返回一个类型为 Collection 的对象。因此,您必须使用循环来遍历所有响应。像这样:

Dim Json As Object
Set Json = JsonConverter.ParseJson(xmlhttp.ResponseText)
For Each singleJsonItem In Json 
             'What object type is singleJsonItem? To find out, maybe use:
             'MsgBox singleJsonItem("imei")
Next singleJsonItem 

您必须找出集合条目的对象类型才能提取 JSON 条目。

【讨论】:

    【解决方案2】:

    这样解决:

    使用:https://github.com/VBA-tools/VBA-JSON 并将模块命名为:'mdl_JsonConverter'

     Set Json = mdl_JsonConverter.ParseJson(xmlhttp.ResponseText)
    
             For Each item In Json
                 input_1 = item("input_1")
                 input_2 = item("input_2")
                 'THEN DO SOMETHING WITH VALUES F.E. ADDING THEM IN A TABLE
             Next
    

    【讨论】:

      猜你喜欢
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      相关资源
      最近更新 更多