如何获得动态属性名称?

时间:2015-01-14 11:10:33

标签: coldfusion

我有一系列关键名称和包含数据的结构。 我需要循环遍历结构并根据键数组打印出所有属性值。 我的键值包含例如值

propList array contains:
id, name, haircolor, age

我想浏览结构并打印出

的值
item.id
item.name
item.haircolor
item.age
(or any properties stored in the array)

我试图打印

<cfoutput>"#item.propName#"</cfoutput>

其中propName是通过 propList 数组循环检索的。

3 个答案:

答案 0 :(得分:3)

你有一系列结构或东西吗?如果结构中只有一级属性,则不需要两个循环?你必须这样做:

<cfloop array="#myStructures#" item="item">
    <cfloop array="#propList#" index="key">
        <cfoutput>#item[key]#</cfoutput>
    </cfloop>
</cfloop>

或者更安全:

<cfloop array="#myStructures#" item="item">
    <cfloop array="propList" index="key">
        <cfif StructKeyExists(item, key)>
        <cfoutput>#item[key]#</cfoutput>
        </cfif>
    </cfloop>
</cfloop>

答案 1 :(得分:2)

当关键是“动态”时,您可以使用数组表示法从结构中获取值。

<cfloop index="item" array=#input#>
    <cfloop list="#rawColumnList#" delimiters="," index="value">
        <cfoutput>#item[ value ]#</cfoutput>
    </cfloop>
</cfloop>

答案 2 :(得分:-4)

解决方案:

<cfloop index="item" array=#input#>
    <cfloop list="#rawColumnList#" delimiters="," index="value">
        <cfset output=Evaluate("item.#value#")>
        <cfoutput>#output#</cfoutput>
    </cfloop>
</cfloop>