?
Solved

Reading cfhttp json call and outputing to coldfusion friendly source.

Posted on 2012-12-21
2
Medium Priority
?
1,006 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

Quick Start: DOCKER

Sometimes you just need a Quick Start on a topic in order to begin using it.. this is just what you need to know to get up and running with Docker!

Question has a verified solution.

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

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 …
CFGRID Custom Functionality Series -  Part 1 Hi Guys, I was once asked how it is possible to to add a hyperlink in the cfgrid and open the window to show the data. Now this is quite simple, I have to use the EXT JS library for this and I achiev…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
Suggested Courses
Course of the Month10 days, 8 hours left to enroll

765 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