извлечь json в таблицу Excel, используя VBA - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь извлечь данные json в таблицу Excel, используя vba. Я установил VBA- JSON и включил Microsoft Scripting Runtime.

json запрос доставляет:

{"STATUS": "SUCCESS", "RESULT": {"aid ":" 17903 "," ean ": 4003483179030," title ":" Manzanita, sandgestrahlt, verzweigt, 90-100 см "," shortdes c ":" Echte Äste direkt aus der Natur, около 90-100 Zentimeter языки Wunderschön für natürliche Dekorationen Одер ALS Kontrast цу Pflanzgefäßen унд Васен AUS Anderen Materialien Sauber, да sandgestrahlt Jedes Stück Эйн Unikat (Abbildungen beispielhaft) " "longdes c....":" Ein besonderer Blickfang Синд Dekorationen AUS echten, natürlichen Materialien w ie MANZANITA Zweigen. D ie echten Zweige eignen sich perfekt als Kontrast zu Pflanzgefäßen und Vasen aus anderen Materialien. Sauber, da sandgestrahlt. Jedes Stück ein Unikat (Abbildungen beispielha): Abbildungen beispielhaft. , "width": "0", "height": "90", "weight": "1", "pic01": "17903_manzanitasandblastedbranchy.jpg", "pic02": "17903_manzanitasandblastedbranch y ~ 01.jpg "," pic03 ":" 17903_manzanitasandblastedbranchy ~ 02.jpg "," pic04 ":" "," pic05 ":" "," pic06 ":" "," pic06 ":" "," pic07 ":" "," pic08 " : "", "pic09": "", pic10 ":" "," pic11 ":" "," pic12 ":" "," attribute ": [{" id ":" oxattribute1013 "," title ": "Aktueller Katalog", "value": "1"}, {"id": "oxattribute1021", "title": "Aktueller Katalog - Seitenzahl", "value": "238-1"}, {"id": "oxattribute1007", "title": "Paket - Versand", "value": "1"}, {"id": "oxattribute1020", "title": "Ser ie", "value": "MANZANITA" }, {"id": "oxattribute1019", "title": "Funktionsname", "value": "Ast"}, {"id": "oxattribute1018", "title": "Farbbezeichnung", "value": " sandgestrahlt "}, {" id ":" oxattribute1005 "," title ":" Speditionsversand "," value ":" 1 "}]}}

я написал его в ячейке excel (1,1) и проанализировал его с помощью jsonconverter.

с кодом

Sub Jsonauslesenbenny()

Dim jsonText As String
Dim jsonObject As Object

Dim i As Long
Dim ws As Worksheet

Set ws = Worksheets("Tabelle1")

jsonText = ws.Cells(1, 1)

Set jsonObject = JsonConverter.ParseJson(jsonText)

i = 3



For Each item In jsonObject("RESULT")
Sheets(1).Cells(i, 1).Value = item("aid")
Sheets(1).Cells(i, 2).Value = item("ean")
Sheets(1).Cells(i, 3).Value = item("title")

i = i + 1
Next



End Sub

таким образом, что элементы "помощь" к "pic12" могут быть записаны в ячейку Excel.

Я не понимаю, как писать элементы после «атрибутов» в ячейках таблицы Excel.

как мне записать "id", "title" и "value" из данных json в таблицу excel?

1 Ответ

0 голосов
/ 01 мая 2020

Попробуйте этот код

Sub Jsonauslesenbenny()
    Dim ws As Worksheet, jsonObject As Object, jsonText As String, i As Long

    Set ws = Worksheets("Tabelle1")
    jsonText = ws.Cells(1, 1)
    Set jsonObject = JSONConverter.ParseJson(jsonText)
    i = 3

    With Sheets(1)
        .Cells(i, 1).Value = jsonObject("RESULT")("aid")
        .Cells(i, 2).Value = jsonObject("RESULT")("ean")
        .Cells(i, 3).Value = jsonObject("RESULT")("title")
    End With
End Sub

Чтобы получить атрибуты

Sub GetAttributes()
    Dim itm, ws As Worksheet, jsonObject As Object, jsonText As String, i As Long

    Set ws = Worksheets("Tabelle1")
    jsonText = ws.Cells(1, 1)
    Set jsonObject = JSONConverter.ParseJson(jsonText)
    i = 3

    For Each itm In jsonObject("RESULT")("attributes")
        With Sheets(1)
            .Cells(i, 1).Value = itm("id")
            .Cells(i, 2).Value = itm("title")
            .Cells(i, 3).Value = itm("value")
        End With
        i = i + 1
    Next itm
End Sub
...