Coldfusion - Как прокрутить массив структуры и динамически распечатать все значения KEY?
Предоставление массива структуры ниже:
![enter image description here]()
Я могу распечатать все значения из всех полей, выполнив:
<cfset ColumnNames = structKeyArray(ApiData[1])>
<cfset ColumnLength = ArrayLen(ColumnNames)>
<cfloop from="1" to="#ArrayLen(ApiData)#" index="i">
<cfdump var="#ApiData[i].Created#">
<cfdump var="#ApiData[i].Name#">
...and so on
Теперь я пытаюсь перебрать все поля, чтобы мне не приходилось писать
имя каждого поля. Как это сделать динамически?
Что-то вроде:
<cfloop from="1" to="#ArrayLen(ApiData)#" index="i">
<cfloop from="1" to="#ColumnLength#" index="i">
<!---<cfdump var="#ApiData[i]." + "#ColumnNames[i]#" + "#">--->
<!---<cfdump var="#ApiData[i].ColumnNames[i]#">--->
</cfloop>
</cfloop>
Я не парень ColdFusion, просто помогая приятелю, а синтаксис ColdFusion сильно отличается от .Net: -)
Спасибо за помощь
Ответы
Ответ 1
<cfloop from="1" to="#arrayLen(ApiData)#" index="i">
<cfset data = ApiData[i]>
<cfloop collection="#data#" item="key">
#key#:#data[key]#
</cfloop>
</cfloop>
Или вы можете использовать CFScript, который должен быть намного легче подобрать.
for (d in ApiData) // for-in loop for array
{
for (key in d) // for-in loop for struct
{
writeOutput(key & ":" & d[key]);
}
}
используйте эту ссылку: http://www.learncfinaweek.com/week1/Looping/