使用Coldfusion解析JSON数据

时间:2015-08-26 12:28:00

标签: json coldfusion

我正在使用Gaug.es API来跟踪一些简单的统计数据,我正在尝试将这些数据合并到我的后端。 API以JSON格式返回数据,尽管我付出了最大努力,但我似乎总是对这种格式感到困惑。事实上,几年前我在这里问了一个与JSON相关的问题,答案已经形成了这个问题的起点 - 但是我那古老而生锈的大脑似乎无法绕过这个问题!

这是我到目前为止所拥有的;

<cfhttp url="https://secure.gaug.es/gauges" method="GET" resolveurl="YES">
<cfhttpparam type="header" name="X-Gauges-Token" value="myAPIKey">
</cfhttp>

<cfset gaugeResult = deserializeJSON(cfhttp.filecontent)>

<cfdump var="#gaugeResult#">

<cfset formattedData = [] />
<cfset tmp = {} />

<cfloop collection=#gaugeResult# item="gauges">
<cfset tmp.title = gaugeResult[title] />
<cfset tmp.todayviews = gaugeResult[today]["views"] />
<cfset arrayAppend(formattedData,duplicate(tmp)) />
</cfloop>

<cfdump var=#formattedData# />

附上了gaugeResult cfdump的屏幕截图。

enter image description here

基本上我需要做的是抓住id,title,today&gt; views和today&gt; people figure,然后我将其添加到数据库中。

当前查询返回错误“Variable TITLE is undefined” - 我在这方面的有限理解让我感到有些困惑!

1 个答案:

答案 0 :(得分:5)

如果我理解这个问题,那么这样的事情应该可以解决问题。您想要的数据位于数组中,因此只需循环遍历数组。

<cfset formattedData = []>
<cfloop array="#gaugeResult.gauges#" index="it">
   <cfset arrayAppend(formattedData, {
       id = it.id,
       title = it.title,
       todayViews = it.today.views,
       todayPeople = it.today.people
   })>
</cfloop>
<cfdump var="#formattedData#">