Разбор данных jQuery в JavaScript (JSON) - PullRequest
0 голосов
/ 21 января 2009

Я использую PHP, jQuery и JSON. Теперь мне нужно знать, как анализировать данные jQuery в JavaScript.

load.php

<?php

    ...
    $json =json_encode($array);

?>

Возвращает jQuery по следующим данным.

 [{"name":"STA","distance":"250","code":25},
 {"name":"GIS","distance":"500","code":45}]

JQuery код

$.getJSON("load.php", function(json){
    // Access object
    var a = json;
    pass(a);
});

Теперь мне нужно передать JSON (a) в JavaScript, определенный в файле my.js:

var myjson = {};

function pass(a) {
    myjson = a;

    //Here, how do I get name, and distance, code.
    //I have tried "alert(myjson.name)". It returns undefined.
}

Какие изменения я должен внести в мою логику?

Ответы [ 2 ]

6 голосов
/ 21 января 2009

У вас есть массив объектов JSON, поэтому вам нужно перебрать массив, чтобы получить каждый отдельный объект:

for(var x = 0; x < myjson.length; x++) {
    alert(myjson[x].name);
    // myjson[x].distance, myjson[x].code also available
}

Или, если вы хотите сделать это способом jQuery:

jQuery.each(myjson, function(x) {
    alert(myjson[x].name);
});

В обоих примерах вы получите предупреждение с «STA» и «GIS».

В дополнение к этому, как указывает OIS, вы пытаетесь прочитать неправильную переменную в своем коде. JSON должен быть в переменной с именем a.

1 голос
/ 21 января 2009

Вы пытаетесь использовать переменную с именем json, которая не определена в области действия вашей функции. Вместо этого вы должны использовать аргумент с именем.

function pass(a) {
   var i;
    while(i = a.pop()) {
        alert(i.name + " " + i.distance);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...