如何用VBA-JSON的JsonConverter向JSON对象添加对象数组?
问题解决:向JSON对象添加对象数组(VBA-JSON)
错误原因
- 对象赋值未用
Set关键字:jsonObj("xmpls") = xmplsArr这行代码中,xmplsArr是Collection对象,给Scripting.Dictionary的键赋值对象时必须使用Set,否则会抛出参数数量错误或属性赋值无效的异常。 - 键名与目标结构不符:第二个示例对象中误将
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
相关产品推荐
相关产品推荐

