简体   繁体   中英

How to get values from json array using javascript?

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.

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

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM