/ / Mapowanie danych JSON / XML do komórki Excela w VBA? - json, xml, vba, excel-vba, excel

Mapowanie danych JSON / XML do komórki Excela w VBA? - json, xml, vba, excel-vba, excel

Pytam o to po kilku badaniach w Internecie. Istnieje sposób na zaimportowanie arkusza Excela na pliki typu JSON lub XML, ale nie ma jasnych opisów dla mojej sprawy. Chciałbym, jaki jest mój cel;

Mam pewnego rodzaju ciąg danych, taki jak plik .txt, taki jak ten;

Przykładowe dane:

{"vehicle1": {
"title": "A super red vehicle",
"weight": "1500 kg",
"height": "2 m",
"vehicle1-center_of_gravity": [
{"x": "2 m"},
{"y": "-0.5 m"},
{"z": "1.5 m"}
"vehicle1-passenger_weights": [
{"p1": "2 m"},
{"p2": "-0.5 m"},
{"p3": "1.5 m"}
"color": "red",
]
}
}}

Chciałbym wybrać ten plik w oknie dialogowym pliku, a następnie kliknij przycisk Czytaj, teraz moje pytanie pojawia się tutaj. Czy można połączyć / zmapować je z komórkami, na przykład mam komórkę o nazwie vehicle_title i chcę zmapować tę komórkę za pomocą plików .txt "title": "A super red vehicle".

Czy masz jakieś doświadczenie lub pomysł, jak mogę to zaimplementować do mojego makra?

Pozdrowienia.

Odpowiedzi:

2 dla odpowiedzi № 1

Możesz użyć tej biblioteki

https://github.com/VBA-tools/VBA-JSON

aby przeanalizować JSON w VBA, ale musisz wykonać mapowanie w kodzie: nie ma do tego wbudowanej konfiguracji / kreatora.

Sub Tester()

Dim j As Object, json As String, v

"read from file
json = CreateObject("scripting.filesystemobject").OpenTextFile( _
ThisWorkbook.Path & "example.txt").ReadAll()

"import module from: https://github.com/VBA-tools/VBA-JSON
Set j = JsonConverter.ParseJson(json)

Set v = j("vehicle1")

"some attributes...
Debug.Print v("title")
Debug.Print v("weight")
Debug.Print v("vehicle1-center_of_gravity")(1)("x")

End Sub

PS W Twojej próbce JSON występuje kilka błędów składniowych.