構造体の配列からクエリ オブジェクトを作成する必要があります。配列には約 200 個のキーがあり、配列内の構造は名前、サイズ、深さが異なります。1 つのノードは次のようになります。
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>
作成されたクエリ オブジェクトを次に示します。「テスト」と表示されていますが、値が得られることを願っています: