Подтвердить что ты не робот

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: -)

Спасибо за помощь

4b9b3361

Ответ 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/