Javascript 使用jquery.parseJSON或JSON.parse解析JSON以与Highcharts一起使用:如何从格式化程序的函数调用中删除引号?

Javascript 使用jquery.parseJSON或JSON.parse解析JSON以与Highcharts一起使用:如何从格式化程序的函数调用中删除引号?,javascript,json,parsing,highcharts,formatter,Javascript,Json,Parsing,Highcharts,Formatter,因此,我有一个JSON字符串,其中包含以下用于在highcharts中格式化axis标签的片段: 标签:{格式化程序:函数{return Math.absthis.value+\u0027%\u0027;} 使用json解析器将字符串转换为javascript对象时,label.formatter的对象属性是带有函数调用的带引号的字符串。Highcharts随后会抱怨,因为格式化程序不是函数,而是字符串。尝试找出如何删除引号,使其成为实际的函数调用,而不是字符串。希望t他的话有道理,先谢谢你 这

因此,我有一个JSON字符串,其中包含以下用于在highcharts中格式化axis标签的片段:

标签:{格式化程序:函数{return Math.absthis.value+\u0027%\u0027;}

使用json解析器将字符串转换为javascript对象时,label.formatter的对象属性是带有函数调用的带引号的字符串。Highcharts随后会抱怨,因为格式化程序不是函数,而是字符串。尝试找出如何删除引号,使其成为实际的函数调用,而不是字符串。希望t他的话有道理,先谢谢你

这是供参考的整个字符串:

"{"chart":{"animation":false,"backgroundColor":"rgba(255, 255, 255, 0.0)","type":"bar"},"credits":{"enabled":false},"xAxis":{"categories":["\u0027Alta \u0027","\u0027Gratr\u0027","\u0027IDV\u0027","\u0027BSV\u0027","\u0027Adhes\u0027"]},"yAxis":{"title":{"enabled":true},"labels":{"formatter":" function() { return Math.abs(this.value) + \u0027%\u0027; }"}},"legend":{"enabled":false},"exporting":{"enabled":false},"plotOptions":{"scatter":{"marker":{"radius":6}}},"series":[{"name":"\u0027Product\u0027","data":[{"y":69,"name":"\u0027() Alta All Cap Quality Growth\u0027"},{"y":17,"name":"\u0027() Gratry International Growth\u0027"},{"y":6,"name":"\u0027(IDV) iShares International Select Div ETF\u0027"},{"y":6,"name":"\u0027(BSV) Vanguard Short-Term Bond ETF\u0027"},{"y":2,"name":"\u0027() Adhesion Cash Model\u0027"}]}],"title":{"text":"Top 20 Allocations"}}"

您可以使用eval。请注意,这是一个安全漏洞

问题是您正在通过JSON传递函数。JSON不支持此功能

顺便说一句,jquery.parseJSON已被弃用,请使用JSON.parse

下面是一个例子:

data = JSON.parse(x);
data.yAxis.labels.formatter = eval(data.yAxis.labels.formatter);

否,对字符串求值将生成一个可以传递给highchartsok的函数对象,因此data.yAxis.labels.formatter=函数{return Math.absthis.value+'%';}调用chart.yAxis.labels.formatter=evalchart.yAxis.labels.formatter我遇到了一个sytax错误:意外标记必须将其括在括号中,因此eval+formatter+似乎可以工作,谢谢