我正在尝试循环产品数组中的所有项目。 使用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);
});
请帮助。
答案 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)。我现在可以投放产品。谢谢!