2016-09-10 14 views
0

PHP json文字列があります。jsファンクションとしてJSONのjsファンクションを解析します。

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

{"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>'; }} 

の助けを借りて、このようにPHPの文字列にJSONを変換することができますが、私は

jQuery.parseJSON(variableContainingPHPJSONstring) 

を持つオブジェクトにJSONを解析しようとすると、私のようなエラーが発生していますこの。

キャッチされないでSyntaxError:予期しないトークンのu JSON内の位置14

でこれは私がそれに取り組んでいますJSONはHIGHCHARTです。

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

私はここでしか機能部に問題があります。 未満ツールチップ:フォーマッタ

+0

JSONでは関数を使用できないため、解析が失敗することは明らかです。 – trincot

+2

もう1つはJSONではなく、javascriptオブジェクトです。 'jQuery.parse'を使って解析することはできません。 –

+0

私はそれを知っています...しかし、私はこれを実現する方法が欲しい... @trincot –

答えて

1

関数は有効ではありません。関数を使用できるようにするには、その関数をeval()しなければなりません。これを避ける方法を見つけることを奨励したり、データの行などを受け入れるツールチップ機能を持たせることをおすすめしますが、ここではeval()を使用して基本的に必要な作業を行う例を示します。

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

var formatter = eval(data.formatter); 

console.log(formatter()); 
関連する問題