Я использую PHP, jQuery и JSON. Теперь мне нужно знать, как анализировать данные jQuery в JavaScript.
<?php
...
$json =json_encode($array);
?>
Он возвращает jQuery по следующим данным.
[{"name":"STA","distance":"250","code":25},
{"name":"GIS","distance":"500","code":45}]
$.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.
}
Какие изменения я должен внести в свою логику?






У вас есть массив объектов 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.
Вы пытаетесь использовать переменную с именем json, которая не определена в области действия вашей функции. Вместо этого вы должны использовать аргумент с именем.
function pass(a) {
var i;
while(i = a.pop()) {
alert(i.name + " " + i.distance);
}
}
Мне очень жаль, но вы должны перефразировать это. Я не понимаю, как вы хотите использовать код?
Невозможно перенести весь объект JSON из jQuery в javscript. Так что все манипуляции с javascript, есть идеи?