VBA-JSON v2.0.1 in Excel-VBAParsing nicht konsistent json Antwortlänge in Excel VBA
Hier ist die JSON-Antwort, die ich von API-Abfrage erhalten
{
"currency": {
"code": "USD",
"name": "US Dollar",
"prefix": "$",
"postfix": null
},
"products": [
{
"product_id": xxxxx,
"model_code": "xxxxx",
"quantity": 1,
"price": "45.60",
"total": "45.60",
"retail_price": "63.84"
}
],
"shipping": [
{
"name": "UPS",
"price": 43.83,
"delivery": "3 -10 Days delivery"
},
{
"name": "DHL",
"price": 20.29,
"delivery": "2-6 days"
},
{
"name": "FedEx",
"price": 31.46,
"delivery": "2-6 days"
},
{
"name": "EMS",
"price": 25.74,
"delivery": "7 - 25 Days delivery"
},
{
"name": "Air Mail",
"price": 11.85,
"delivery": "10 - 25 Days delivery"
}
]
}
Hier ist ein Teil meines Codes um den Preis vom Element "Luftpost" zu analysieren.
result = objHTTP.responseText
Dim Json As Object
Dim resultAirmailprice As String
Set Json = JsonConverter.ParseJson(result)
resultAirmailprice = Json("shipping")(5)("price")
Cells(2, 2).Value = resultAirmailprice
Der Code läuft gut, wenn das "Air Mail" -Element in (5) des "Versand" -Elements ist. Das Problem ist manchmal, dass es keine "UPS" - und "Air Mail" -Elemente gibt, also habe ich einen Fehler bekommen.
Wie man Code schreibt, um den "Luftpost" Preis zu analysieren, und wenn nicht existiert, vom "EMS" Preis analysieren (oder der preiswerteste Preis von allen)?
Ich bin nicht vertraut mit der JsonConverter-Klasse, aber versuchen Sie sicher resultAirmailprice = Json ("Versand") ("Air Mail") ("Preis"). Ich sage dies beurteilt, wie die anderen Objekte erhalten werden ... – MacroMarc
Funktioniert nicht. Als "Air Mail" ist der Wert von "Name" – user3394010