如何在jQuery中解析此API返回?

时间:2019-05-21 16:05:26

标签: javascript jquery json api

我正在尝试循环产品数组中的所有项目。 使用ajax调用,我从API得到以下响应:

productData = {"product":[{"id":"9200000083451240","title":"Apple Lightning Cable"},{"id":"9200000098453451","title":"Apple iPhone XR"}],"totalResultSize":2}

如您所见,我需要的数据位于变量“ productData”中,如何从AJAX响应数据访问它?

我已经尝试过data.productData.product和其他一些东西,但是没有用。

    var searchTerm = $("#searchterm").val();

    $.ajax({
        url: 'https://api.com/search?term=' + searchTerm,
        type: 'GET',
    }).done(function (data) {
        $.each(data.productData.product, function (index, element) {
            console.log(element.title);
        });
        console.log('---- Data ----');
        console.log(data);
    });

请帮助。

3 个答案:

答案 0 :(得分:1)

productData = {"product":[{"id":"9200000083451240","title":"Apple Lightning Cable"},{"id":"9200000098453451","title":"Apple iPhone XR"}],"totalResultSize":2}

无效的json响应。

{"product":[{"id":"9200000083451240","title":"Apple Lightning Cable"},{"id":"9200000098453451","title":"Apple iPhone XR"}],"totalResultSize":2}

是有效的json响应,可以使用以下方式获取:

// after success in ajax
.done(function (data) {
   console.log(data.product);   // More under it
   console.log(data.totalResultSize);
})

答案 1 :(得分:0)

要将响应数据作为JS对象,必须调用此函数:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

来源:JSON.parse()

要迭代json对象内的对象,可以使用$ .each()函数:

var obj = {
one: 1,
two: 2,
three: 3,
four: 4,
five: 5
};
$.each(obj, function (index, value) {
console.log(value);
});

来源:$.each()

答案 2 :(得分:0)

从API响应中删除“ productData =”部分(如Rory McCrossan所建议的),然后使用JSON.parse(感谢sohaieb)。我现在可以投放产品。谢谢!