I believe you are just passing a reference of the tmpAddress to the array, so it is being overridden with each loop. Try the following to insert a copy of the structure into the array instead:
ArrayAppend(results.Deal.addresses,duplicate(tmpAddress)); - Rodney On Fri, Dec 19, 2014 at 4:39 PM, Dean Lawrence <[email protected]> wrote: > > I have a remote method which is retrieving a deal object, populating a > structure and returning it to the client requesting it. This is all well > and good. However, the deal object has multiple address objects associated > to it. When looping over these addresses, I am having trouble adding them > to an array. Here is my code: > > for (Address in Deal.getAddresses()){ > tmpAddress.street = Address.getStreet(); > tmpAddress.street2 = Address.getStreet2(); > tmpAddress.city = Address.getCity(); > tmpAddress.state = Address.getState(); > tmpAddress.postalcode = Address.getPostalcode(); > tmpAddress.phone = Address.getPhone(); > ArrayAppend(results.Deal.addresses,tmpAddress); > } > > The problem that I am having is that the results.Deal.addresses key ends up > with an array of empty structures, the total number matching the total > addresses associated to this deal. So in my test case, the deal that I am > working on has a single address, so the results.Deal.addresses key is an > array with on empty structure in it (no keys). However, if I don't try to > append to the array by doing this: > > for (Address in Deal.getAddresses()){ > tmpAddress.street = Address.getStreet(); > tmpAddress.street2 = Address.getStreet2(); > tmpAddress.city = Address.getCity(); > tmpAddress.state = Address.getState(); > tmpAddress.postalcode = Address.getPostalcode(); > tmpAddress.phone = Address.getPhone(); > results.Deal.addresses = tmpAddress; > } > > The results.Deal.addresses key is now a struct and all the address keys > assigned properly, so I know the tmpAddress struct is being populated > properly. Does anyone have any thoughts as to what might be going on? I am > running ACF 10 and yes, I have var scoped the results, Deal and tmpAddress > variables at the top of the method. I also tried adding "local" to the > Address variable in the for loop, but it did not help. > > Thansk, > > -- > > [image: profile picture] *Dean Lawrence* > *President* > Internet Data Technology > *Phone:* 888-438-4381 x701 > *Web:* www.idatatech.com > *Email:* [email protected] > Programming | Database | Consulting | Training > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:359865 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

