首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用冷融合的JSON数据

使用冷融合的JSON数据
EN

Stack Overflow用户
提问于 2013-04-05 17:33:02
回答 2查看 8.9K关注 0票数 4

过去,我使用过JSON数据--主要是“捏造”我的解决方案,而不是真正理解为什么或如何工作。我遇到了一个问题,返回的数据看起来与我以前看到的有些不同,而且我找不到任何与它相匹配的例子。

下面是返回数据的示例(通过API);

代码语言:javascript
复制
{"domain.co.uk":{"status":"available","classkey":"thirdleveldotuk"},"domain.net":{"status":"available","classkey":"dotnet"},"domain.com":{"status":"available","classkey":"domcno"}}

在我的前端,我需要归还这样的东西-

  • domain.co.uk -可供选择
  • domain.net -可供选择
  • domain.com -可供选择

因为'domain.com‘etc值总是会改变,所以我无法像通常那样映射名称(尽管总是返回3’行‘)。

我已经检查了我拥有的每一本CF书,并阅读了在线CF文档,但我完全不知道从哪里开始这个!

指针非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-05 17:50:46

如果您使用deserializeJSON(数据)运行此操作,您将看到您最终得到的是带有嵌套结构的结构。因此,您可以循环遍历您的结构,获取键,然后获取该键的状态。在JSON术语中,您的JSON对象有嵌套对象。

代码语言:javascript
复制
<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# />
票数 10
EN

Stack Overflow用户

发布于 2013-04-05 18:31:09

(这确实是一个更多的评论,但有点长.)

过去,我使用过JSON数据--主要是“捏造”我的解决方案,而不是真正理解为什么或如何工作。

JSON字符串本质上只是两个对象的表示:

  • 数组,这些数组由[]
  • {}表示的结构(或对象)

查看API字符串,大括号{}表示您正在处理一个结构:

代码语言:javascript
复制
     { "theKey": "theValue" }

在您的例子中,域名是结构key

代码语言:javascript
复制
    { "domain.co.uk": "theValue" }

。。value是一个嵌套结构,包含两个静态键:"status“和"classkey”。

代码语言:javascript
复制
    { "theKey":  {"status":"available","classkey":"thirdleveldotuk"}  }

与任何结构一样,您可以使用for .. in循环动态地迭代密钥,如果您喜欢cfml,则使用集合循环。

代码语言:javascript
复制
     for (theKey in theStruct) {
         WriteDump( theKey ); // ie "domain.co.uk"
     }

然后在循环中使用关联数组符号来获取value,即:

代码语言:javascript
复制
     theStatus = theStruct[ theKey ]["status"]; // "available"

     // ... OR
     theValue  = theStruct[ theKey ]; 
     theStatus = theValue.status;

这就是它的全部。您可以使用类似的逻辑来访问任何类型的嵌套结构。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15840003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档