Вы можете написать рекурсивную подпрограмму, которая будет проверять, что каждая структура находится в JSON и обрабатывать соответствующим образом.Кроме того, вам нужно сместить позицию конечного "," в начале, чтобы он фактически разделял элементы в JSON.
Так что в А1 и А2 у меня есть следующее:
[{"oeange":"good"},{"banana":{"color":"yellow"}},{"cat":"grumpy"}]
[{"oeange":"good"},{"banana":null},{"cat":"grumpy"}]
VBA:
Option Explicit
Public r As Long
Public Sub GetInfoFromSheet()
Dim json As Object, jsonSource(), i As Long, ws As Worksheet, arr() As String
Set ws = ThisWorkbook.Worksheets("Sheet1")
jsonSource = Application.Transpose(ws.Range("A1:A2").Value)
For i = LBound(jsonSource) To UBound(jsonSource)
Set json = JsonConverter.ParseJson(jsonSource(i))
EmptyJSON json
Next i
End Sub
Public Sub EmptyJSON(ByVal json As Object)
Dim key As Variant, item As Object
Select Case TypeName(json)
Case "Dictionary"
For Each key In json
Select Case TypeName(json(key))
Case "Dictionary"
EmptyJSON json(key)
Case Else
r = r + 1
With ThisWorkbook.Worksheets("Sheet1")
.Cells(r, 2) = key
.Cells(r, 3) = json(key)
End With
End Select
Next
Case "Collection"
For Each item In json
EmptyJSON item
Next
End Select
End Sub
Выход: