2017-11-17 27 views
0

축 레이블을 하이 차트에 서식 지정하기위한 다음과 같은 요소가 포함 된 JSON 문자열이 있습니다.jquery .parseJSON 또는 JSON.parse를 사용하여 Highchart와 함께 JSON을 구문 분석하는 방법 : 포맷터에 대한 함수 호출에서 따옴표를 제거하는 방법은 무엇입니까?

"레이블": {function} {return Math.abs (this.value) "

json 파서를 사용하여 문자열이 javascript 객체로 변환되면 label.formatter의 object 속성은 함수 호출이있는 인용 문자열입니다. 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"}}" 

답변

1

당신은 평가를 사용할 수있다(). 이것은 보안상의 결함입니다.

문제는 JSON을 통해 함수를 전달한다는 것입니다. JSON은 이것을 지원하지 않습니다.

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

"포맷"을 의미 :

, BTW jquery.parseJSON()은 여기

JSON.parse()이 예제 사용되지 않습니다? "평가 (함수() {반환 ..." – user789221

+0

아니, 평가() 문자열에서 하이 차트에 전달할 수있는 함수 객체가 생깁니다 – neuhaus

+0

그러면 data.yAxis.labels.formatter = "function() {return Math.abs (this.value) + '%';}"차트 호출 .yAxis.labels.formatter = eval (chart.yAxis.labels.formatter) sytax 오류가 발생했습니다 : 예기치 않은 토큰 ( – user789221