ここで私はここで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"
}
]
}
を取得するJSONレスポンスは、私のコードの一部です"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
"Air Mail"要素が "shipping"要素の(5)にある場合、コードは正常に動作します。問題は「UPS」と「Air Mail」の要素がないことがあるため、エラーが発生します。 「航空便」の価格を解析し、存在しない場合は、「EMS」の価格(または全てのうち最も安い価格)から解析するコードを記述する方法
? JSONパーサコードを見
私はJsonConverterクラスに慣れていないけど、確実にresultAirmailprice = JSON( "出荷")( "航空便")( "価格")をしてみてください。私は他のオブジェクトがどのように取得されたかを判断すると言っています... – MacroMarc
動作しません。 "Air Mail"は "name"のVALUEなので – user3394010