У меня есть массив структур, где я должен получить доступ к конкретному полю.Вот пример моих данных:
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.
Есть ли способ вывести только одно поле из каждой структуры в массиве?Нечто подобное можно реализовать в JavaScript при переборе объектов JS.Пример:
for (var key in data) {
console.log(data[key]['address_state']);
}
Если кто-нибудь знает способ достижения этого в ColdFusion, пожалуйста, дайте мне знать.