我有一个index.html文件,它调用main.php,它返回一个json对象就好了。
main.php返回此
{
"products": [
{
"id": "1",
"txt": "Bar",
"image": "",
"page": ""
},
{
"id": "2",
"txt": "Car",
"image": "",
"page": ""
},
{
"id": "3",
"txt": "Far",
"image": "",
"page": ""
}
],
"success": 1
}
在Java中有json.getJSONArray(TAG_PRODUCTS);
但....我在这里使用HTML和JavaScript ... 所以在我的html文件中,我有以下内容 如何从json返回的数据中提取产品数组?
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://localhost:8888/HelloWorld/main.php',
contentType: "application/json; charset=utf-8",
success: function (data) {
var names = data
$('sa_content').append('<select name="input_4">');
$.each(data, function(index, element) {
alert( "index: " + index + ", element.cf_id: " + element );
});
$('sa_content').append('</select>');
},
error: function(){
$('#sa_content').append('<li>There was an error loading the feed');
}
});
当我运行index.html页面时,我收到以下警告
index = products, element = [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
和
index = success, element = 1
那么如何将产品数组拉出json并迭代它以获取id,txt,image,page的值?
提前感谢您的时间。 迪安-O
答案 0 :(得分:3)
尝试将此作为成功函数使用:
function (data) {
var products = data.products;
for (var i = 0; i < products.length; i++) {
var product = products[i];
alert(product.id + " " + product.txt + " " + product.image + " " + product.page);
}
}
它应该遍历所有产品并提醒您数据。 然后,您可以修改代码以满足您的需求。
答案 1 :(得分:0)
如果您确定代码是安全的,您可以使用JSON.parse
,也可以只使用eval('(' + json + ')');
。
答案 2 :(得分:0)
您正在获得一系列产品,因此您希望迭代该数组:
success: function (data) {
var names = data
for(i = 0; i < data.products.length; i++) {
//Do what you want.
var id = data.products[i].id;
}
}
答案 3 :(得分:0)
如果你的页面只返回json,那么从jquery ajax返回的XHR对象应该包含一个从该数据构造的javascript对象。如果不是这种情况,则页面出现问题,例如返回的不仅仅是json编码的字符串。