[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

Reading cfhttp json call and outputing to coldfusion friendly source.

Posted on 2012-12-21
2
Medium Priority
?
1,013 Views
Last Modified: 2013-01-08
Hello,

I'm getting the feed info but I'm trying to figure out how to read the feed and convert it into Coldfusion friendly use. Basically I'm wanting to output the city and state into a 2d array.

Thx!

<cffunction name="ipLocation"
            access="remote"
            returntype="struct"
            displayname="ipLocation"
            output="no">

    <cfset var local = StructNew()>

    <cfset local.url = "http://www.geoplugin.net/extras/nearby.gp?limit=10&radius=50&format=json">

    <cfhttp result="local.ipRequest"
            url="#local.url#"
            method="get"
            timeout="5"
            throwOnError="yes"/>
 
</cffunction>

Open in new window

0
Comment
Question by:brihol44
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 52

Accepted Solution

by:
_agx_ earned 1000 total points
ID: 38715795
Using the regex from your other question the deserialized result looks like an array of structures. So you could just return the array as is, then loop through it elsewhere:


<!--- Note: Always check the CFHTTP response code for errors first. ---> 
<cfset theData = REReplace(local.ipRequest, "^\s*[[:word:]]*\s*\(\s*","")>
<cfset theData = REReplace(theData, "\s*\)\s*$", "")>

<!--- Test to make sure you have JSON data. --->
<cfif !IsJSON(theData)>
    Error not valid JSON
<cfelse>
	<!--- deserialize it into an array of structures --->
    <cfset jsonData = DeserializeJSON(theData)>
    <cfif isArray(jsonData)>
		<cfoutput>
		<!--- loop through it and display the "place" and "region" values --->
	    <cfloop array="#jsonData#" index="elem">
    		place/region: #elem.geoplugin_place# #elem.geoplugin_region# <br>
	    </cfloop>
	    </cfoutput>
	</cfif>
</cfif> 

Open in new window

0
 

Author Closing Comment

by:brihol44
ID: 38757716
Cool! Thx!
0

Featured Post

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

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

This article  is about submitting  form through  ColdFusion.Ajax.submitForm to the action page and send a response back in JSON format which later can be decoded using ColdFusion.JSON.decode. By this way you can avoid the usual page refresh for subm…
This is an updated version of a post made on my blog over 3 years ago. It is unfortunately, still very relevant as we continue to see both SQLi (SQL injection) and XSS (cross site scripting) attacks hitting some of the most recognizable website and …
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

650 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