我必須與JSON返回(我從亞馬遜市場API中獲取XML響應)戰鬥。它包含數組,子數組等等。目前我只需要獲取2個值(AmazonOrderId和OrderItem對象),但我找不到直接解決它們的方法。我仍然嘗試幾個小時。遞歸的東西嚇了我一下。遞歸列出來自JSON的所有對象屬性路徑
有那麼多的工具,也用於美化或編輯JSON。那麼是否也有可能遞歸顯示所有屬性鏈接的解決方案?到目前爲止,我還沒有找到像這樣的東西。
UPDATE:從斜視的答案代碼我已經建立一個快速和骯髒的工具,做我想做的。那就是:http://output.jsbin.com/gunixo
,如:
myJSON.ListOrderItemsResponse.ListOrderItemsResult[0].OrderItems[0].OrderItem[0].QuantityOrdered
myJSON.ListOrderItemsResponse.ListOrderItemsResult[0].OrderItems[0].OrderItem[0].Title
...
這真的會節省時間,在這種情況下。
{
"ListOrderItemsResponse": {
"$": {
"xmlns": "https://mws.amazonservices.com/Orders/2013-09-01"
},
"ListOrderItemsResult": [{
"OrderItems": [{
"OrderItem": [{
"QuantityOrdered": ["1"],
"Title": ["My Product Title"],
"ShippingTax": [{
"CurrencyCode": ["EUR"],
"Amount": ["0.00"]
}],
"PromotionDiscount": [{
"CurrencyCode": ["EUR"],
"Amount": ["0.00"]
}],
"ConditionId": ["New"],
"ASIN": ["BXXXI5W6M8"],
"SellerSKU": ["KNDR-BTTWSCH-BGSBNNY"],
"OrderItemId": ["67050234000659"],
"GiftWrapTax": [{
"CurrencyCode": ["EUR"],
"Amount": ["0.00"]
}],
"QuantityShipped": ["1"],
"ShippingPrice": [{
"CurrencyCode": ["EUR"],
"Amount": ["4.90"]
}],
"GiftWrapPrice": [{
"CurrencyCode": ["EUR"],
"Amount": ["0.00"]
}],
"ConditionSubtypeId": ["New"],
"ItemPrice": [{
"CurrencyCode": ["EUR"],
"Amount": ["15.77"]
}],
"ItemTax": [{
"CurrencyCode": ["EUR"],
"Amount": ["0.00"]
}],
"ShippingDiscount": [{
"CurrencyCode": ["EUR"],
"Amount": ["0.00"]
}]
}]
}],
"AmazonOrderId": ["304-6107803-0000000"]
}],
"ResponseMetadata": [{
"RequestId": ["dd64dd40-d939-4ea1-875d-xxxxxxxxxxxx"]
}]
}
}
如果它是一個XML響應,你爲什麼將其轉換爲JSON?爲什麼不尋找一個工具來遍歷原始的XML呢? XML和JSON的數據類型和結構實際上並沒有很好地映射,所以通過轉換,你只是讓底層結構變得更加困難。 – IMSoP
另外,我不確定你在掙扎着什麼;您給出的兩個示例行看起來像他們可以很好地處理您提供的示例數據。實際上沒有任何遞歸需要,只需要對結構進行深度嵌套訪問。 – IMSoP
感謝您的評論。我使用MWS-JS-2014連接和檢索亞馬遜的數據。這爲我提供了(僅)一個JSON對象。 – Lutz