gpt4 book ai didi

arrays - 如何循环结构体数组并显示所有键值

转载 作者:行者123 更新时间:2023-12-01 22:58:26 25 4
gpt4 key购买 nike

我正在循环结构数组并尝试分配和存储所有键值。如果我将内循环包裹在 <cfoutput> 中,我收到错误:“复杂对象类型无法转换为简单值”。如果我忽略它,那么它就不起作用。我错过了什么?

enter image description here

<cfif isJSON(httpResp.fileContent)>
<cfset jsonData = deserializeJSON(httpResp.fileContent) />

<cfloop from="1" to="#arrayLen(jsonData)#" index="i">
<cfset data = jsonData[i]>

<!---<cfoutput>--->
<cfloop collection="#data#" item="key">
#key#:#data[key]#<br>
</cfloop>
<!---</cfoutput>--->

</cfloop>

<cfdump var="#jsonData#">

<cfelse>
Did not receive a valid Json object
</cfif>

这是输出:

#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#
#key#:#data[key]#

最佳答案

trying to assign and store all key values

虽然从技术上讲您可以动态输出所有键,但如果最终目标是操作和/或存储值,那么动态循环可能不是您想要的。要提取特定值,只需使用点表示法显式引用键名称即可。例如:

<cfloop array="#jsonData#" index="prop">
<cfoutput>
<hr>confirmation = #prop.confirmation#
<br>id = #prop.id#
<br>label.carrier = #prop.label.carrier#
<br>label.tracking = #prop.label.tracking#
<br>order.created_at = #prop.order.created_at#
<br>policy.logistic_code = #prop.policy.logistic_code#
<br>policy.refund_code = #prop.policy.refund_code#
<br>ref.order = #prop.ref.order#
<br>state = #prop.state#
...
</cfoutput>
</cfloop>

但是,回答您的问题,错误消息仅意味着 cfoutput 只能处理简单值。由于您尝试显示的某些值实际上是结构(即复杂对象),例如 labelstates,因此当它尝试输出它们。

关于arrays - 如何循环结构体数组并显示所有键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57066437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com