ExcelVBAでJSONオブジェクトを作る

Jsonデータ(Jsonオブジェクト)を生成するには、辞書(Dictionary)オブジェクトや配列(Collection)オブジェクトを生成して要素を追加する。

例えば以下のようなJsonデータの生成を考えてみる。

 1{
 2    "infomation": {
 3        "myname": "Mike",
 4        "friends": [
 5	        ["Tom","man",24],
 6	        ["Sherry","woman",20],
 7	        ["David","man",38]
 8        ]
 9    }
10}

このJsonを解析すると、概ね以下のようになっている。
・infomation は、辞書形式となっている。
・infomationのfriendsキーの要素は配列となっており、その配列要素も配列となっている。

よって、作るべきオブジェクトは以下① 〜 ④。
① 以下の② 〜 ④をまとめる辞書オブジェクト
② infomationの辞書オブジェクト
③ friendsの配列オブジェクト
④ ③の要素の配列オブジェクト

以下にサンプルコードを示す。
なお、JsonConverter(こちらを参照)というモジュールを別途導入しており、これを使って生成したオブジェクトをDebug.Printし内容を確認している(以下35行目参照)。

 1Sub test()
 2
 3    Dim JsonObject As Object
 4    Dim Infomation As Object
 5    Dim friends As Object
 6    Dim friend_wk As Object
 7    Set JsonObject = New Dictionary
 8    Set Infomation = New Dictionary
 9    Set friends = New Collection
10    Set friend_wk = New Collection
11
12    friend_wk.Add "Tom"
13    friend_wk.Add "man"
14    friend_wk.Add "24"
15    friends.Add friend_wk
16
17    Set friend_wk = Nothing
18    Set friend_wk = New Collection
19    friend_wk.Add "Sherry"
20    friend_wk.Add "woman"
21    friend_wk.Add "20"
22    friends.Add friend_wk
23
24    Set friend_wk = Nothing
25    Set friend_wk = New Collection
26    friend_wk.Add "David"
27    friend_wk.Add "man"
28    friend_wk.Add "38"
29    friends.Add friend_wk
30
31    Infomation.Add "myname", "Mike"
32    Infomation.Add "friends", friends
33    JsonObject.Add "infomation", Infomation
34
35    Debug.Print JsonConverter.ConvertToJson(JsonObject, Whitespace:=2)
36
37End Sub