Reputation: 102439
I am using PHP, jQuery, and JSON. Now I need to know how to parse the jQuery data in JavaScript.
<?php
...
$json =json_encode($array);
?>
It returns jQuery by the following data.
[{"name":"STA","distance":"250","code":25},
{"name":"GIS","distance":"500","code":45}]
$.getJSON("load.php", function(json){
// Access object
var a = json;
pass(a);
});
Now I need to pass the JSON (a
) to JavaScript defined in file 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.
}
What changes should I make to my logic?
Upvotes: 0
Views: 2203
Reputation: 488414
You have an array of JSON objects, so you need to loop through the array to get each individual object:
for(var x = 0; x < myjson.length; x++) {
alert(myjson[x].name);
// myjson[x].distance, myjson[x].code also available
}
Or, if you want to do it the jQuery way:
jQuery.each(myjson, function(x) {
alert(myjson[x].name);
});
Both examples will give you an alert with 'STA' followed by 'GIS'.
In addition to this, as pointed out by OIS, you're trying to read the wrong variable in your code. The JSON should be in variable named a
.
Upvotes: 6
Reputation: 10033
You try to use a variable named json which is not defined in the scope of your function. Instead you have to use the argument named a.
function pass(a) {
var i;
while(i = a.pop()) {
alert(i.name + " " + i.distance);
}
}
Upvotes: 1