Pracuję nad makrami VBA, aby uzyskać dostęp do danych na żywo ze strony internetowej poprzez wywołania API. Używam do tego biblioteki VBA-JSON. Podczas pobierania danych istnieją głównie dwa scenariusze:
Scenariusz nr 1 (możemy zobaczyć data
to tablica JSON):
{
"success": true,
"data": [
{
"id": 4,
"creator_user_id": {
"id": 162,
"name": "ASD",
"email": "email id"
},
"user_id": {
"id": 787878,
"name": "XYZ",
"email": "email id"
},
...
}
]
}
W scenariuszu 1 mogę pobrać wartości data
tablica za pomocą For Each
zapętlić w VBA Excel za pośrednictwem biblioteki VBA-JSON.
Scenariusz # 2:
{
"success": true,
"data": {
"id": 123,
"name": "ABC",
"options": [
{
"id": 119,
"label": "Name1"
},
{
"id": 120,
"label": "Name2"
}
],
"mandatory_flag": false
}
}
Ale w drugim scenariuszu nie mogę uzyskać dostępu do danych data
tablica, ponieważ JSON data
tablica znajduje się w obiekcie JSON. Na przykład chcę wartość id: 120
które muszą wrócić Name2
, dlatego chcę uzyskać dostęp do wartości label
który powróci Name2
.
Próbowałem na wiele sposobów, ale nie mogę tego zdobyć. Czy ktoś może mi powiedzieć, jak można to zrobić w programie VBA Excel? Każda pomoc doceniona.
Odpowiedzi:
0 dla odpowiedzi № 1Korzystając z biblioteki VBA-JSON, możesz uzyskać dostęp do żądanej wartości, wywołując:
Set Parsed = JsonConverter.ParseJson(<yourjsonstring>)
Debug.Print Parsed("data")("options")(2)("label")