VBA-JSON创建嵌套对象

问题描述 投票:0回答:2

我已经看到很多示例显示如何使用VBA-JSON解析json字符串,但是我想知道如何使用此库从头开始创建JSON对象。

我已经开始:

Set Json = JsonConverter.ParseJson("{}")
Json("key") = "value"

这可以按预期工作。

但是,如果我想创建一个嵌套对象,例如:

Json("new_key")(1)("value") = 1
Json("new_key")(2)("foo") = "bar"

不输出预期:{"new_key":[{"value": 1}, {"foo": "bar"}]}

这可以用这个库来实现吗?或者还有另一种方法吗?

谢谢

json excel vba excel-vba
2个回答
3
投票

您可以在VBA中使用Dictionary和Collection。之后将它们转换为Json。这是一个例子:

Sub test()
    Dim c As Collection
    Dim d As Dictionary
    Dim e As Dictionary
    Dim f As Dictionary
    Dim json As String

    Set c = New Collection
    Set d = New Dictionary
    Set e = New Dictionary
    Set f = New Dictionary

    d.Add "value", 1
    e.Add "foo", "bar"
    c.Add d
    c.Add e
    f.Add "new_key", c

    json = JsonConverter.ConvertToJson(ByVal f)

    Debug.Print json
End Sub

这是输出:

{"new_key":[{"value":1},{"foo":"bar"}]}

2
投票

像这样的东西:

Set Json = JsonConverter.ParseJson("{}")
'or
'Set Json = CreateObject("scripting.dictionary")

Json.Add "new_key", CreateObject("scripting.dictionary")
Json("new_key")("value") = 1
Json("new_key")("foo") = "bar"
© www.soinside.com 2019 - 2024. All rights reserved.