Solved

How do I traverse this multidimensional JSON array/obj

Posted on 2009-05-18
1
2,378 Views
Last Modified: 2013-11-08
I'm creating an AJAX script with PHP, and JS.

The PHP takes GET parameters, returns some data from the database. I need this data to be usable through javascript. My php verison < 5.2 so I dont have JSON encode. So far i've been able to get PHP to format a JSON array, the data looks like the following

{"6":{"lat":"34.409425","lng":"-119.861470"},"5":{"lat":"34.409414","lng":"-119.861221"},"8":{"lat":"34.410934","lng":"-119.861718"},"10":{"lat":"34.410503","lng":"-119.863998"},"9":{"lat":"34.412089","lng":"-119.866134"},"3":{"lat":"34.409475","lng":"-119.854704"},"7":{"lat":"34.413153","lng":"-119.855430"},"15":{"lat":"34.414979","lng":"-119.712181"},"14":{"lat":"34.414979","lng":"-119.712181"},"11":{"lat":"34.414979","lng":"-119.712181"},"13":{"lat":"34.414979","lng":"-119.712181"}}

The first key is a uuid then the following key is another array with latitude and logitude.  I need to extract this information from javascript.
function get_map()

{

	var distance = $("#distance").val();

	var sort = $("input[name='sort']:checked").val(); 

	var who = $("input[name='who']:checked").val();

	

	$.getJSON("ajax/ajax_get_locations_map.php",{distance: ""+distance+"",who: ""+who+"",sort: ""+sort+""}, function(data){

		var obj = (data);

		$.each(obj, function(i, val) {
 

		     //need help at this point to get variables  

		    });

	});

}

Open in new window

0
Comment
Question by:bperin42
1 Comment
 
LVL 12

Accepted Solution

by:
alien109 earned 500 total points
ID: 24418974
you can do this:


for(var uuid in data) {

    var lat = data[uuid].lat;

    var lng = data[uuid].lng;

}
 

//Here's what your json string looks like formatted, revealing the structure a little better
 

{

   "6":{

      "lat":"34.409425",

      "lng":"-119.861470"

   },

   "5":{

      "lat":"34.409414",

      "lng":"-119.861221"

   },

   "8":{

      "lat":"34.410934",

      "lng":"-119.861718"

   },

   "10":{

      "lat":"34.410503",

      "lng":"-119.863998"

   },

   "9":{

      "lat":"34.412089",

      "lng":"-119.866134"

   },

   "3":{

      "lat":"34.409475",

      "lng":"-119.854704"

   },

   "7":{

      "lat":"34.413153",

      "lng":"-119.855430"

   },

   "15":{

      "lat":"34.414979",

      "lng":"-119.712181"

   },

   "14":{

      "lat":"34.414979",

      "lng":"-119.712181"

   },

   "11":{

      "lat":"34.414979",

      "lng":"-119.712181"

   },

   "13":{

      "lat":"34.414979",

      "lng":"-119.712181"

   }

}

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

28 Experts available now in Live!

Get 1:1 Help Now