{
означает словарь, к которому вы обращаетесь по ключу, [
означает коллекцию, поэтому вы получаете доступ по индексу. ""
означает строковый литерал, поэтому вы читаете как есть. Проверьте тип данных и обработайте, как требуется. Ниже я использую JSON-анализатор для чтения строки JSON из ячейки A1. После добавления .bas
из этой ссылки в ваш проект вы затем добавляете ссылку через VBE> Инструменты> Ссылки> Microsoft Scripting Runtime.
Я использую подпрограмму EmptyDict
, которую я вызываю рекурсивно, чтобы проверить, является ли текущий объект словарем или коллекцией, а затем зацикливаться, пока я не опустошу каждый словарь. Для каждой коллекции я сдвигаю один столбец вправо.
Как уже упоминалось в комментариях, вы должны настроить выходной формат на листе.
Древовидная структура, по которой вы спускаетесь, выглядит следующим образом:

VBA:
Option Explicit
Public r As Long, c As Long
Sub readValues()
Dim json As Object, item As Object
Set json = JsonConverter.ParseJson([A1])("Level1")(1) 'dictionary
r = 1: c = 1
EmptyDict json
End Sub
Public Sub EmptyDict(ByVal dict As Object)
Dim key As Variant, item As Object
Select Case TypeName(dict)
Case "Collection"
For Each item In dict
c = c + 1
r = 1
EmptyDict item
Next
Case "Dictionary"
For Each key In dict
If TypeName(dict(key)) = "Collection" Then
EmptyDict (dict(key))
Else
With ThisWorkbook.Worksheets("Sheet2")
.Cells(r, c) = dict(key)
End With
r = r + 1
End If
Next
End Select
End Sub