<!--- Get the JSON Feed ---><cfhttp url="http://www.geoplugin.net/extras/nearby.gp?limit=50&radius=50&format=json"><!--- JSON data is sometimes distributed as a JavaScript function. The following REReplace functions strip the function wrapper. ---><cfset theData=REReplace(cfhttp.FileContent, "^\s*[[:word:]]*\s*\(\s*","")><cfset theData=REReplace(theData, "\s*\)\s*$", "")><!--- Test to make sure you have JSON data. ---><cfif !IsJSON(theData)> <h3>The URL you requested does not provide valid JSON</h3> <cfdump var="#theData#"><!--- If the data is in JSON format, deserialize it. ---><cfelse> <cfset cfData=DeserializeJSON(theData)> <!--- Parse the resulting array or structure and display the data. In this case, the data represents a ColdFusion query that has been serialized by the SerializeJSON function into a JSON structure with two arrays: an array column names, and an array of arrays, where the outer array rows correspond to the query rows, and the inner array entries correspond to the column fields in the row. ---> <!--- First, find the positions of the columns in the data array. ---> <cfoutput> <cfloop collection="#cfData#" item="key"> <cfloop array="#cfData['geoplugin_place']#" index="struct2"> </cfloop> </cfloop> </cfoutput></cfif>