Coldfusion:如何访问嵌套的结构数组
Coldfusion: how to access nested array of structures
我正在尝试访问 tax_lines.item 和 tax_lines.price,但没有成功。
这是我运行:
<cfif structKeyExists( jsonData, 'orders' ) AND isArray(jsonData.orders)>
<cfloop from="1" to="#arrayLen(jsonData.orders)#" index="i">
<cfset line_items = jsonData.orders[i].line_items>
<cfif not arrayIsEmpty(#line_items#)>
<cfloop array="#line_items#" index="i">
......
........
<cfset item_tax_lines = line_items[i].tax_lines>
<cfif not arrayIsEmpty(#item_tax_lines#)>
....
</cfif>
</cfloop>
</cfif>
</cfloop>
</cfif>
line_items[i].tax_lines
这会导致错误,因为您正在使用数组循环。所以索引变量 i
包含数组的当前元素 - 而不是位置编号。要访问 tax_lines 键,请改用 i.tax_lines
。
<cfif not arrayIsEmpty(#line_items#)>
<cfloop array="#line_items#" index="i">
与错误无关,但不需要检查 arrayIsEmpty。如果数组为空,则循环将不执行任何操作。因此,您可以将循环代码简化为:
<cfloop array="#jsonData.orders#" index="order">
<cfloop array="#order.line_items#" index="line">
do something with #line.tax_lines# here ....
</cfloop>
</cfloop>
我喜欢 Ageax 的解决方案。我会在 <cfscript>
中完成
<cfscript>
for (order in jsonData.orders) {
for (line in order.line_items) {
// fancy stuff with line.tax_lines#
}
}
</cfscript>
我正在尝试访问 tax_lines.item 和 tax_lines.price,但没有成功。 这是我运行:
<cfif structKeyExists( jsonData, 'orders' ) AND isArray(jsonData.orders)>
<cfloop from="1" to="#arrayLen(jsonData.orders)#" index="i">
<cfset line_items = jsonData.orders[i].line_items>
<cfif not arrayIsEmpty(#line_items#)>
<cfloop array="#line_items#" index="i">
......
........
<cfset item_tax_lines = line_items[i].tax_lines>
<cfif not arrayIsEmpty(#item_tax_lines#)>
....
</cfif>
</cfloop>
</cfif>
</cfloop>
</cfif>
line_items[i].tax_lines
这会导致错误,因为您正在使用数组循环。所以索引变量 i
包含数组的当前元素 - 而不是位置编号。要访问 tax_lines 键,请改用 i.tax_lines
。
<cfif not arrayIsEmpty(#line_items#)> <cfloop array="#line_items#" index="i">
与错误无关,但不需要检查 arrayIsEmpty。如果数组为空,则循环将不执行任何操作。因此,您可以将循环代码简化为:
<cfloop array="#jsonData.orders#" index="order">
<cfloop array="#order.line_items#" index="line">
do something with #line.tax_lines# here ....
</cfloop>
</cfloop>
我喜欢 Ageax 的解决方案。我会在 <cfscript>
<cfscript>
for (order in jsonData.orders) {
for (line in order.line_items) {
// fancy stuff with line.tax_lines#
}
}
</cfscript>