簡體   English   中英

使用jquery .parseJSON或JSON.parse解析JSON以與Highcharts一起使用:如何從格式化程序的函數調用中刪除引號?

[英]Parsing JSON for use with Highcharts using jquery .parseJSON or JSON.parse: how to remove quotes from function calls for formatters?

因此,我有一個JSON字符串,其中包含以下用於在highcharts中格式化軸標簽的片段:

“ labels”:{“ formatter”:“ function(){return Math.abs(this.value)+ \\ u0027%\\ u0027;}”

使用json解析器將字符串轉換為javascript對象時,label.formatter的對象屬性是帶有函數調用的帶引號的字符串。 然后,Highcharts抱怨,因為格式化程序不是函數,而是字符串。 試圖弄清楚如何刪除引號,以便它是實際的函數調用,而不是字符串。 希望這是有道理的。 提前致謝。

這是整個字符串供參考:

"{"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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM