我需要从结构数组中创建一个查询对象。该数组有大约 200 个键,数组内的结构在名称、大小和深度上各不相同。这是一个节点的样子:
我已经让它对 array[#i].adGroupId 和 array[#i#].userStatus 工作正常,但我需要在将结构值添加到查询之前检查它是否存在。例如,criteria.text 并不总是在结构中,所以我需要检查,但不确定如何。这是到目前为止的代码,但它总是跳过criteria.text 和bids.maxCpc.amount.microAmount。
<cfset vColumns = "AdGroupID,KeywordText,Status,MaxCPC" />
<cfset vColumnValue = "AdGroupID,criterion.text,userStatus,bids.maxCPC" />
<cfset loopnum = 1>
<cfset myquery = QueryNew(vColumns) >
<cfloop array="#aKeywordsAll#" index="i">
<cfset temp = QueryAddRow(myquery, 1)>
<cfset loopNum2 = 1>
<cfloop list="#vColumnValue#" index="j">
<cfif structKeyExists(aKeywordsAll[loopnum],j)>
<cfset QuerySetCell(myquery, listGetAt(vColumns, loopNum2), aKeywordsAll[loopnum][j])>
<cfelse>
<cfset QuerySetCell(myquery, listGetAt(vColumns, loopNum2), "test")>
</cfif>
<cfset loopNum2++ />
</cfloop>
<cfset loopnum++ />
</cfloop>
这是创建的查询对象。它说“测试”,但希望它能给出值: