Php 如何使用javascript从json数组中获取值?

Php 如何使用javascript从json数组中获取值?,php,javascript,jquery,ajax,json,Php,Javascript,Jquery,Ajax,Json,我有一个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&some

我有一个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]);
    }
});
$.getJSON('calculate.php&someparams=123',函数(数据){
警报(“url-”+data.url);
var arr=data.drivers;
对于(变量i=0;i
我看到第一个警报()带有url,但第二个警报不起作用。。。 我做错了什么


如果你需要更多信息,请告诉我,我会编辑这篇文章。

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


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

驱动程序
不是数组,而是一个对象,用于迭代对象元素

$.getJSON('calculate.php&someparams=123', function(data) {
    $.each(data.drivers, function(key, value){
        $.each(value, function(key, value){
            console.log(key, value);
        });
    })
});

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);

谢谢但是很抱歉,我已经更新了主帖子的json。。。那么它将是什么?@Joëlle您想要的输出是什么“json结构是否正确?”您的意思是“它是有效的json”吗?因为结构在没有语法错误的意义上看起来是有效的,但是它是否“正确”取决于您希望它表示什么。(尽管如此,我还是建议不必将每个数字放入自己的数组中,除非有时一个名称可能有多个数字与之关联。)