I have an AJAX call to a remote CFC and get the data back with JSON just how I like, but I’m having trouble outputting the data without having to guess the structure index with hardcoded index values such as: $(‘#result’).val( obj.DATA[0][3] );
If I hardcode the index such as [3] if I change the query in the CFC I have to change the AJAX result. So I want to refer to the returned data by the colmn name but can’t figure it out. Here’s my AJAX and the result from a remote CFC:
$.ajax({
url: '/app/components/MailingsReport.cfc',
//POST method is used
type: "POST",
//pass the data
data: {
method: "getCreativeByID",
creativeID: $('#hdnCreativeID').val(),
datasource: "shopping_cart",
queryformat: "column"
},
success: function(response){
var obj = $.trim(response);
var obj = jQuery.parseJSON(obj);
//alert("response");
$('#txtSubject').val( obj.COLUMNS["SUBJECT"][0] );
}
}
});
CFC:
<!---gets the data for the creative--->
<cffunction name="getCreativeByID" returntype="any" returnformat="JSON" access="remote" output="No">
<cfargument name="creativeID" required="Yes" type="numeric" />
<cfargument name="datasource" required="Yes" type="string" />
<!--- Select creatives and {clickurl} --->
<cfquery name="qGetCreativeData" datasource="#arguments.datasource#">
exec sp_get_email_creative @creativeid = #arguments.creativeID#
</cfquery>
<cfreturn qGetCreativeData />
</cffunction>
Result:

Any help would be appreciated! Thanks.
This works in everything except IE8 and below. if you need full compatibility you could write your own indexOf JS method.
If you need it, this page has the instructions on adding the indexOf to your array prototypes in browsers that don’t support it directly: http://www.tutorialspoint.com/javascript/array_indexof.htm