我从disqus.com API获得以下结构返回,我只是不知道如何使用Coldfusion仅以红色检索以下“id”值。
这是返回的完整数组。
{
"cursor":{
"prev":null,
"hasNext":false,
"next":"1213061503000000:1:0",
"hasPrev":false,
"total":null,
"id":"1213061503000000:1:0",
"more":false
},
"code":0,
"response":[
{
"category":"1",
"reactions":0,
"identifiers":[],
"forum":"bobross",
"title":"Donkeys live a long time",
"dislikes":0,
"isDeleted":false,
"author":"1",
"userScore":0,
"id":"2",
"isClosed":false,
"posts":0,
"link":null,
"likes":0,
"message":"\"Donkeys live a long time. None of you have ever seen a dead donkey.\"",
"ipAddress":"127.0.0.1",
"slug":"donkeys_live_a_long_time",
"createdAt":"2008-06-10T02:31:43"
},
{
"category":"1",
"reactions":0,
"identifiers":[
"my-identifier"
],
"forum":"bobross",
"title":"Happy Accidents",
"dislikes":0,
"isDeleted":false,
"author":"1",
"userScore":0,
"id":"1",
"isClosed":false,
"posts":76,
"link":null,
"likes":0,
"message":"\"If you've painted before you know that we don't make mistakes -- we have happy accidents.\"",
"ipAddress":"127.0.0.1",
"slug":"happy_accidents",
"createdAt":"2008-06-10T01:31:43"
}
]
}
答案 0 :(得分:6)
嗯:首先,这是一个JSON数据包而不是数组,因此您需要通过反序列化将其转换为CFML数据结构,例如:
data = deserializeJson(jsonPacket);
然后你将拥有一个本机CFML结构(不一个数组......数组是结构中的一个值)。
从那里,您将使用结构/数组表示法或结构函数/等以通常的CFML结构方式访问任何给定元素。
要直接指出你指出的项目,它将是(鉴于上面的代码已经先运行):
data.response[1].id
但是我怀疑你真的不想解决这个问题吗?但是,如果没有更多关于你要做什么的细节,除了你想要的东西之外,很难回答。
如果您想获得所有ID,可以这样做:
ids = [];
for (singleResponse in data.response){
arrayAppend(ids, singleResponse.id);
}
或者在ColdFusion 10上,还有更多关于如何迭代数组的选项。
再次:澄清你正在尝试做的事情,我们可以帮助你做到这一点。