我有一个PHP文件,它只返回带有驱动程序和URL的数组:
{"drivers":[{"marco":[0],"luigi":[123],"Joan":[2444],"George":[25]}, {"marco":[23],"luigi":[3],"Joan":[244],"George":[234]}],"url":"google.es"}
json的结构是否正确? 我试图通过这种方式使用jQuery和AJAX获得结果:
$.getJSON('calculate.php&someparams=123', function(data) {
alert("url - " + data.url);
var arr = data.drivers;
for (var i = 0; i < arr.length; i++) {
alert(arr[i] + " - " + arr[i][0]);
}
});
我看到第一个带有网址的alert(),但第二个不起作用... 我做错了什么?
如果您需要更多信息,请通知我,我会修改帖子。
答案 0 :(得分:1)
drivers
不是数组,它是一个对象,您使用$.each来遍历对象元素。
$.getJSON('calculate.php&someparams=123', function(data) {
$.each(data.drivers, function(key, value){
$.each(value, function(key, value){
console.log(key, value);
});
})
});
答案 1 :(得分:0)
这是一个对象,而不是一个数组。它命名了属性,而不是数字索引。
您需要for in loop来遍历属性。
答案 2 :(得分:0)
drivers
是一个对象。不是数组。
这个怎么样?
var json_string = '{"drivers":{"marco":[0],"luigi":[123],"Joan":[2444],"George":[25]},"url":"google.es"}';
var obj = jQuery.parseJSON(json_string);
alert(obj.url);