I am trying to map traceroutes to google maps.
I have an array in php with traceroute data as
$c=ip,latitude,longitude, 2nd ip, its latitude, longitude, ....target ip, its lat, its lng
I used json_encode($c, JSON_FORCE_OBJECT)
and saved the file
Now, how do I access this using javascript, by directly equating it to new JS object?
earlier I used to have a data format like this on harddrive
var data12 = { "route":[ { "ip": "some ip", "longitude": "some lng", "latitude": "some lat", .....
and in my javascript it was used as
data=data12.route;
and then simply acces the members as data[1].latitude
Advertisement
Answer
I recommend using the jQuery library. The minified version only has 31 kB in size and provides lots of useful functions.
For parsing JSON, simply do
var obj = jQuery.parseJSON ( ' {"name" : "John"} ' );
You can now access everything easily:
alert ( obj.name );
Note: jQuery uses the browser’s native JSON parser – if available – which is very quick and much safer then using the eval ()
method.
Edit: To get data from the server side to the client side, there are two possibilities:
1.) Use an AJAX request (quite simple with jQuery):
$.ajax ( { url: "yourscript.php", dataType: "json", success: function ( data, textStatus, jqXHR ) { // process the data, you only need the "data" argument // jQuery will automatically parse the JSON for you! } } );
2.) Write the JSON object into the Javascript source code at page generation:
<?php $json = json_encode ( $your_array, JSON_FORCE_OBJECT ); ?> <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var json_obj = jQuery.parseJSON ( ' + <?php echo $json; ?> + ' ); //]]> </script>