似乎无法在Javascript中处理JSON响应

时间:2018-04-12 13:06:00

标签: javascript json

我有来自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>');   




            });          

1 个答案:

答案 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;
});