小编典典

在Coldfusion中使用JSON数据

json

我过去使用过JSON数据-
主要是“迷惑”我的解决方案,而不是真正了解为什么或如何工作。我遇到了一个问题,即返回的数据看起来与我之前看到的有所不同,并且找不到与之匹配的示例。

这是通过API返回的数据的示例;

{"domain.co.uk":{"status":"available","classkey":"thirdleveldotuk"},"domain.net":{"status":"available","classkey":"dotnet"},"domain.com":{"status":"available","classkey":"domcno"}}

在前端,我需要返回这样的内容-

由于“ domain.com”等值将始终更改,因此我无法像平常那样映射名称(尽管将始终返回3个“行”)

我已经检查了我拥有的每本CF书,并阅读了在线CF文档,但是对于从何处着手,我完全是一头雾水!

指针非常感谢!


阅读 297

收藏
2020-07-27

共1个答案

小编典典

如果使用deserializeJSON(data)运行它,您将看到最终只是带有嵌套结构的结构。因此,您可以遍历您的结构,获取键,然后获取该键的状态。用JSON术语,您的JSON对象具有嵌套对象。

<cfset data = deserializeJSON(apiData) />
<cfset formattedData = [] />
<cfset tmp = {} />

<cfloop collection=#data# item="domain">
    <cfset tmp.domain = domain />
    <cfset tmp.status = data[domain]["status"] />
    <cfset arrayAppend(formattedData,duplicate(tmp)) />
</cfloop>

<cfdump var=#formattedData# />
2020-07-27