doushishi6513 2013-04-27 11:28
浏览 9
已采纳

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

I have a PHP file which only return an array with the drivers and a url:

{"drivers":[{"marco":[0],"luigi":[123],"Joan":[2444],"George":[25]}, {"marco":[23],"luigi":[3],"Joan":[244],"George":[234]}],"url":"google.es"}

Is the json correctly structured? And I'm trying to get the result using jQuery and AJAX by this way:

$.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]);
    }
});

I see the first alert() with the url, but the second one does not works... What am I doing wrong?

If you need more info let me know and I'll edit the post.

  • 写回答

3条回答 默认 最新

  • duan32342 2013-04-27 11:32
    关注

    The drivers is not an array, it is an object, you use $.each to iterate through the object elements.

    $.getJSON('calculate.php&someparams=123', function(data) {
        $.each(data.drivers, function(key, value){
            $.each(value, function(key, value){
                console.log(key, value);
            });
        })
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • doutizong8099 2013-04-27 11:31
    关注

    That's an object, not an array. It has named properties, not numerical indexes.

    You need a for in loop to loop over the properties.

    评论
  • douwei7976 2013-04-27 11:35
    关注

    drivers is an object. Not an array.

    How about this?

    var json_string = '{"drivers":{"marco":[0],"luigi":[123],"Joan":[2444],"George":[25]},"url":"google.es"}';
    var obj = jQuery.parseJSON(json_string);
    alert(obj.url);
    
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 深海控制器DSE7320MKII和博世ECU间can通讯知识
  • ¥15 Ru的复折射率用于FDTD 200nm到1200nm
  • ¥15 使用Fiddler抓包,textview的乱码如何解决
  • ¥50 trio连接驱动器报错
  • ¥15 有谁懂nhanes的权重计算啊
  • ¥15 欧姆龙PLC 电机控制 限位
  • ¥30 如何处理shell命令接收到的视频流并实时播放出来
  • ¥15 虚心请教C#的代码优化问题
  • ¥15 有偿求做台风过境全过程模拟仿真
  • ¥50 求!AutomationDesk 如何自动导入Variant数据