PHP などのサーバー側テクノロジを使用して Highcharts JSON を生成しています。
ブラウザから AJAX リクエストを送信して、完全な Highcharts JSON を取得し、レンダリングしています。
たとえば、MY AJAXレスポンスは
[
{
"plotOptions":{
"enabled":false,
"series":{
"stacking":"",
"point":{
"events":{
"click":"function(e){console.log(e.point.config); console.log(e.point.category)}"
}
}
}
},
"chart":{
"type":"column",
"renderTo":"leftTopContainer",
"polar":false
},
"series":[
{
"name":"netpos",
"data":[6700,8200,11500]
}
],
"title":{
"text":"Future Financial Commitments-5Y Yr View"
},
"xAxis":{
"categories":["2010","2011","2012"]
}
}
];
サーバー側の応答を取得した後、次のコードを使用してレンダリングしています
new Highcharts.Chart(responseData);
イベント以外は順調に進んでいます
"events":{
"click":"function(e){console.log(e.point.config); console.log(e.point.category)}"
}
JSON 応答でわかるように、二重引用符 (" ") で関数を取得しています。
私の問題は
これは文字列なので、関数として呼び出すことはできません。
PHP で (" ") を削除すると、jQuery Ajax は "Invalid JSON or Parse Error" としてエラーをスローします
これは適切なプログラミング手法ではないため、eval() の使用は許可されていません。
JSONオブジェクトを反復処理し、文字列を関数に変換して自動的に呼び出されるようにする方法はありますか?