【发布时间】:2018-12-05 18:27:39
【问题描述】:
我有一系列结构,我应该在其中访问特定字段。这是我的数据示例:
array
1
struct
address_city Washington
address_state DC
array
2
struct
address_city New York
address_state NY
array
3
struct
address_city Miami
address_state FL
我有这段代码循环遍历数组,然后内部循环遍历结构:
<cfloop from="1" to="#arrayLen(arrData)#" index="i">
<cfset data = arrData[i]>
<cfloop collection="#data#" item="key">
<cfoutput>#key#:#data[key]#<br></cfoutput>
</cfloop>
</cfloop>
上面的代码会产生这个输出:
address_city:Washington
address_state:DC
address_city:New York
address_state:NY
address_city:Miami
address_state:FL
相反,我只需要访问 address_state 值。我尝试过这样的事情:
<cfloop from="1" to="#arrayLen(arrData)#" index="i">
<cfset data = arrData[i]>
<cfloop collection="#data#" item="key">
<cfoutput>#data[key]['address_state']#<br></cfoutput>
</cfloop>
</cfloop>
然后我收到此错误消息:
Message You have attempted to dereference a scalar variable of type class java.lang.String as a structure with members.
有没有办法从数组中的每个结构中只输出一个字段?当迭代 JS 对象时,类似的事情在 JavaScript 中是可行的。示例:
for (var key in data) {
console.log(data[key]['address_state']);
}
如果有人知道在 ColdFusion 中实现此目的的方法,请告诉我。
【问题讨论】:
-
只做#data['address_state']#
-
@CFML_Developer 你试过那个代码吗?这不是正确的输出。它将这样做:
DC DC NY NY FL FL它将为结构中的每个项目输出状态值。 -
也许投反对票的人可以解释投反对票。我看不出这个问题有什么问题。
标签: arrays data-structures coldfusion coldfusion-10 cfloop