我正在使用 PHP 等服务器端技术生成 Highcharts JSON。
我正在从浏览器发送一个 AJAX 请求以获取完整的 Highcharts JSON,然后呈现它。
例如我的 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 会抛出错误为“无效 JSON 或解析错误”
我不允许使用 eval() 因为这不是一个好的编程习惯。
有没有办法让我可以遍历 JSON 对象并将字符串转换为函数,以便自动调用它。