0

我有一个 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]);
    }
});

我看到第一个带有 url 的 alert() ,但第二个不起作用......我做错了什么?

如果您需要更多信息,请告诉我,我会编辑帖子。

4

3 回答 3

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);
        });
    })
});
于 2013-04-27T11:32:03.213 回答
0

那是一个对象,而不是数组。它具有命名属性,而不是数字索引。

您需要一个for in 循环来遍历属性。

于 2013-04-27T11:31:25.293 回答
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);
于 2013-04-27T11:35:20.107 回答