@@ -97,9 +97,19 @@ Public Function ConvertToJSON(ByVal JSON_DictionaryCollectionOrArray As Variant,
97
97
Dim JSON_LBound As Long
98
98
Dim JSON_UBound As Long
99
99
Dim JSON_IsFirstItem As Boolean
100
+ Dim JSON_Index2D As Long
101
+ Dim JSON_LBound2D As Long
102
+ Dim JSON_UBound2D As Long
103
+ Dim JSON_IsFirstItem2D As Boolean
100
104
Dim JSON_Key As Variant
101
105
Dim JSON_Value As Variant
106
+
107
+ JSON_LBound = -1
108
+ JSON_UBound = -1
102
109
JSON_IsFirstItem = True
110
+ JSON_LBound2D = -1
111
+ JSON_UBound2D = -1
112
+ JSON_IsFirstItem2D = True
103
113
104
114
Select Case VarType(JSON_DictionaryCollectionOrArray)
105
115
Case vbNull, vbEmpty
@@ -127,8 +137,10 @@ Public Function ConvertToJSON(ByVal JSON_DictionaryCollectionOrArray As Variant,
127
137
128
138
On Error Resume Next
129
139
130
- JSON_LBound = LBound(JSON_DictionaryCollectionOrArray)
131
- JSON_UBound = UBound(JSON_DictionaryCollectionOrArray)
140
+ JSON_LBound = LBound(JSON_DictionaryCollectionOrArray, 1 )
141
+ JSON_UBound = UBound(JSON_DictionaryCollectionOrArray, 1 )
142
+ JSON_LBound2D = LBound(JSON_DictionaryCollectionOrArray, 2 )
143
+ JSON_UBound2D = UBound(JSON_DictionaryCollectionOrArray, 2 )
132
144
133
145
If JSON_LBound >= 0 And JSON_UBound >= 0 Then
134
146
For JSON_Index = JSON_LBound To JSON_UBound
@@ -137,10 +149,31 @@ Public Function ConvertToJSON(ByVal JSON_DictionaryCollectionOrArray As Variant,
137
149
Else
138
150
JSON_BufferAppend JSON_Buffer, "," , JSON_BufferPosition, JSON_BufferLength
139
151
End If
152
+
153
+ If JSON_LBound2D >= 0 And JSON_UBound2D >= 0 Then
154
+ JSON_BufferAppend JSON_Buffer, "[" , JSON_BufferPosition, JSON_BufferLength
140
155
141
- JSON_BufferAppend JSON_Buffer, _
142
- ConvertToJSON(JSON_DictionaryCollectionOrArray(JSON_Index), JSON_ConvertLargeNumbersFromString), _
143
- JSON_BufferPosition, JSON_BufferLength
156
+ For JSON_Index2D = JSON_LBound2D To JSON_UBound2D
157
+ If JSON_IsFirstItem2D Then
158
+ JSON_IsFirstItem2D = False
159
+ Else
160
+ JSON_BufferAppend JSON_Buffer, "," , JSON_BufferPosition, JSON_BufferLength
161
+ End If
162
+
163
+ JSON_BufferAppend JSON_Buffer, _
164
+ ConvertToJSON(JSON_DictionaryCollectionOrArray(JSON_Index, JSON_Index2D), _
165
+ JSON_ConvertLargeNumbersFromString), _
166
+ JSON_BufferPosition, JSON_BufferLength
167
+ Next JSON_Index2D
168
+
169
+ JSON_BufferAppend JSON_Buffer, "]" , JSON_BufferPosition, JSON_BufferLength
170
+ JSON_IsFirstItem2D = True
171
+ Else
172
+ JSON_BufferAppend JSON_Buffer, _
173
+ ConvertToJSON(JSON_DictionaryCollectionOrArray(JSON_Index), _
174
+ JSON_ConvertLargeNumbersFromString), _
175
+ JSON_BufferPosition, JSON_BufferLength
176
+ End If
144
177
Next JSON_Index
145
178
End If
146
179
0 commit comments