使用 Coldfusion 解析 JSON 数据
Parsing JSON Data with Coldfusion
我正在使用 Gaug.es API 来跟踪一些简单的统计数据,并且我正在尝试将这些数据合并到我的后端中。 API returns 格式的 JSON 数据,尽管我尽了最大的努力,但我似乎总是难以适应这种格式。事实上,几年前我在这里问了一个 JSON-related 问题,这个问题的答案已经成为这个问题的起点 - 但我生锈的老脑袋似乎无法理解这个问题!
这是我目前所拥有的;
<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 的屏幕截图。
基本上我需要做的是抓取 id、标题、today>views 和 today>people figures,然后将其添加到数据库中。
当前查询 returns 错误 "Variable TITLE is undefined" - 我在这方面的有限理解让我有些困惑!
如果我理解这个问题,那么像这样的事情应该可以解决问题。您需要的数据在一个数组中,因此只需遍历该数组即可。
<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#">
我正在使用 Gaug.es API 来跟踪一些简单的统计数据,并且我正在尝试将这些数据合并到我的后端中。 API returns 格式的 JSON 数据,尽管我尽了最大的努力,但我似乎总是难以适应这种格式。事实上,几年前我在这里问了一个 JSON-related 问题,这个问题的答案已经成为这个问题的起点 - 但我生锈的老脑袋似乎无法理解这个问题!
这是我目前所拥有的;
<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 的屏幕截图。
基本上我需要做的是抓取 id、标题、today>views 和 today>people figures,然后将其添加到数据库中。
当前查询 returns 错误 "Variable TITLE is undefined" - 我在这方面的有限理解让我有些困惑!
如果我理解这个问题,那么像这样的事情应该可以解决问题。您需要的数据在一个数组中,因此只需遍历该数组即可。
<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#">