Arrays 已发送表单变量内的访问数组

Arrays 已发送表单变量内的访问数组,arrays,post,coldfusion,Arrays,Post,Coldfusion,我正在与PayPal合作,我需要这段代码来阅读API的付款后回复: <cfif StructKeyExists(FORM.TRANSACTION[0],"ID_FOR_SENDER_TXN")> <cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN /> </cfif> 或 更新2 曾与: <cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_

我正在与PayPal合作,我需要这段代码来阅读API的付款后回复:

<cfif StructKeyExists(FORM.TRANSACTION[0],"ID_FOR_SENDER_TXN")>
    <cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />
</cfif>

更新2

曾与:

<cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_SENDER_TXN")>

</cfif>


谢谢大家!

如果表单字段名为
事务[0].ID\u FOR\u SENDER\u TXN
(这是调试循环所指示的),则应将其寻址为:

form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN']
澄清:

使用此符号访问变量时:

<cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />

ColdFusion需要以下数据结构:

它在名为transaction的表单中查找一个键,并尝试从中获取第0个索引(旁注:无论如何,这在CF中不起作用,数组以索引1开头),并且作为数组中的第一项,它期望一个结构具有一个名为ID_的键,用于_SENDER_TXN

但是,PayPal发送给您的实际上是使用以下格式:


这解释了错误消息:“Element TRANSACTION在class[Ljava.lang.String;类型的Java对象中未定义”

正确,但是如果coldfusion仅读取索引1+,如何访问paypal响应传递的索引为0的变量?使用“数组表示法”访问结构的对象;并重新阅读我的答案。它不是数组,它是一个看起来像数组的表单字段名……因此,structKeyExists的正确语法是
structKeyExists(表单,“事务[0].ID\u代表发送方\u TXN”)
。注意:由于字段名ie
[]
中的特殊字符,您不能使用此处定义的ISD。
form['TRANSACTION[0].ID_FOR_SENDER_TXN']
<cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_SENDER_TXN")>

</cfif>
form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN']
<cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />