将JSON中的字符串js函数解析为js函数

时间:2016-09-10 19:52:02

标签: javascript php jquery json

我有PHP json字符串。

{"formatter":"function (){    return   '<b>' + this.series.xAxis.categories[this.point.x] + '<\/b> sold <br><b>' + this.point.value + '<\/b> items on <br><b>' + this.series.yAxis.categories[this.point.y] + '<\/b>';   }"}

我可以借助这个答案Stackoverflow Answer

将JSON转换为PHP STRING
{"formatter":function (){    return   '<b>' + this.series.xAxis.categories[this.point.x] + '<\/b> sold <br><b>' + this.point.value + '<\/b> items on <br><b>' + this.series.yAxis.categories[this.point.y] + '<\/b>';   }}

但是当我尝试使用

将JSON解析为Object时
jQuery.parseJSON(variableContainingPHPJSONstring)

我有这样的错误。

未捕获的SyntaxError:位于第14位的JSON中的意外标记u

这是我正在研究的JSON是一个HIGHCHART。

I have this type of highchart config data coming from db=> php Array=> php json => js string => js object

我这里只有功能部分的问题。 在工具提示:格式化程序

1 个答案:

答案 0 :(得分:1)

函数不是有效的json。如果你想让它可用,你必须eval()函数。我鼓励你找到一种方法来避免这样做,或者有一个工具提示功能接受一行数据或其他任何代替,但这里是使用eval()基本上做你想要的工作示例。

var data = {
    key1: "123",
    key2: "junk",
    formatter: "(function(){return 4;})"
};

var formatter = eval(data.formatter);

console.log(formatter());