我有来自Amazon API的JSON响应,其响应如下:
{
"Result": {
"Data": {
"Title": "HALO 3 (XBOX 360 - REGION FREE)",
"FormattedPrice": "$19.95",
"Source": "Product Description",
"Content": "The epic saga continues..."
}
}
}
在我的Javascript代码中,我在尝试访问FormattedPrice时一直未定义。
我已尝试过各种版本:
var price1 = Response.Result.Data.FormattedPrice;
var price1 = Response.Result[0].Data[0].FormattedPrice;
var price1 = Response.Result[0].FormattedPrice;
添加了完整的通话代码:
data.name = Halo 3.将响应更改为PriceResponse
//Load Amazon Price data
var setUrl =
"https://example.com/price.php?q="+encodeURI(data.name)+"&output=json";
console.log(setUrl);
jQuery.getJSON(setUrl, function(priceResponse) {
var price1 = Response.Result[0].Data[0].FormattedPrice;
jQuery("#info-link-amazon").append('<span style="float:right;">$'+price1+'</span>');
});
答案 0 :(得分:1)
首先,使用浏览器的开发人员工具调试代码。 getJSON调用完成后的whatch priceResponse值,并验证(在网络选项卡上)调用的响应是您所期望的。然后,根据您发布的响应,对响应的访问必须使用priceResponse变量:
//Load Amazon Price data
var setUrl = "https://example.com/price.php?q="+encodeURI(data.name)+"&output=json";
console.log(setUrl);
jQuery.getJSON(setUrl, function(priceResponse) {
var price1 = priceResponse.Result.Data.FormattedPrice;
});