You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VBA-JSON的JsonConverter向JSON对象添加对象数组?

问题解决:向JSON对象添加对象数组(VBA-JSON)

错误原因

  1. 对象赋值未用Set关键字:jsonObj("xmpls") = xmplsArr这行代码中,xmplsArr是Collection对象,给Scripting.Dictionary的键赋值对象时必须使用Set,否则会抛出参数数量错误或属性赋值无效的异常。
  2. 键名与目标结构不符:第二个示例对象中误将es写成了ru,会导致生成的JSON不符合预期结构。

修正后的代码

Sub GenerateJSON()
   Dim json As String
   Dim jsonObj As Object
   Dim xmplsArr As Collection
   Dim xmpl As Object

   Set jsonObj = CreateObject("Scripting.Dictionary")
   Set xmplsArr = New Collection

   ' 添加第一个示例对象
   Set xmpl = CreateObject("Scripting.Dictionary")
   xmpl("en") = "Hi"
   xmpl("es") = "Hola"
   xmplsArr.Add xmpl

   ' 添加第二个示例对象(修正键名)
   Set xmpl = CreateObject("Scripting.Dictionary")
   xmpl("en") = "Bye"
   xmpl("es") = "Adios"
   xmplsArr.Add xmpl

   ' 使用Set赋值对象类型的数组
   Set jsonObj("xmpls") = xmplsArr

   ' 转换为JSON字符串
   json = JsonConverter.ConvertToJson(jsonObj)
   Range("E2").Value = json
End Sub

关键说明

  • VBA-JSON模块会自动将Collection转换为JSON数组,将Scripting.Dictionary转换为JSON对象,无需手动处理格式。
  • 所有对象类型的赋值操作(包括给Dictionary添加对象元素)都必须使用Set关键字,这是VBA的语法要求。

内容的提问来源于stack exchange,提问作者hey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:07:26