2 things.
1. datapoints should be in an array
2. use coldfusion json as is. do not manually create json in cfc
$(document).ready(function () {
$.getJSON("display.cfc?method=getData&lob=all", function (result) {
dp = [];
for(var i = 0 ; i< result.DATA.length; i++){
dp.push({y: result.DATA[i][0], label: result.DATA[i][1]})};
var chart2 = new CanvasJS.Chart("piechart", {
theme: "theme2",
data: [{
type: "pie",
dataPoints: dp }]});
chart2.render();});});
This is what I have in my cfc
<cfcomponent access="remote">
<cffunction name="getData" access="remote" returnformat="json">
<cfargument name="lob" type="string" required="yes" />
<cfset var myQuery = QueryNew("y,label")/>
<cfset QueryAddRow(myQuery,3) />
<cfset QuerySetCell(myQuery, "y" , 142,1) />
<cfset QuerySetCell(myQuery, "label" , "In Progress", 1) />
<cfset QuerySetCell(myQuery, "y" , 1083,2) />
<cfset QuerySetCell(myQuery, "label" , "New",2) />
<cfset QuerySetCell(myQuery, "y" , 48,3) />
<cfset QuerySetCell(myQuery, "label" , "Error",3) />
<cfreturn myQuery/>
</cffunction>
</cfcomponent>
source
share