JSON響應長度在Excel中使用VBA的JSON V2.0.1 VBA解析非一致在Excel VBA中
這裏是JSON響應我從API查詢
{
"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"
}
]
}
這裏得到的是我的代碼的一部分解析來自「Air Mail」元素的價格。
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
當「航空郵件」元素位於「shipping」元素的(5)中時,代碼運行良好。問題是有時候沒有「UPS」和「Air Mail」元素,所以我得到了一個錯誤。
如何編寫解析「Air Mail」價格的代碼,如果不存在,從「EMS」價格(或最便宜的價格)解析?
我不熟悉JsonConverter類,但肯定會嘗試resultAirmailprice = Json(「shipping」)(「Air Mail」)(「price」)。我說這是判斷其他物體是如何獲得的... – MacroMarc
不起作用。由於「Air Mail」是「名稱」的值 – user3394010