3

私は以下のようなjsonを持っています-

String sdata = "[{ name : "AAPL", data:[[1112832000000,43.56],[1112918400000,43.74],[1113177600000,41.92],[1113264000000,null],[1113350400000,null]], tooltip: {valueDecimals: 2}}]";

私はJSNIを使用してこれをjavaからjavascriptに渡します。

public static native JavaScriptObject drawStock(Element element、String cname、String sdata)/ *-{
       var chart = new $ wnd.Highcharts.StockChart({
           チャート : {
               renderTo:要素
           }、

           rangeSelector:{
               選択:1
           }、

           タイトル : {
               テキスト:cname
           }、

           series:sdata//=====これはjsonを割り当てる必要がある場所です。

           });

リターンチャート;

}-* /;

上記のネイティブ関数は、「私が信じている」ため、期待どおりに機能しません。sdata変数は二重引用符で囲まれているため、javascriptではjsonオブジェクトとは見なされません。

引用符なしでJavaからjavascriptネイティブインターフェイス関数にjsonオブジェクトを渡すにはどうすればよいですか?

4

2 に答える 2

3

safeEval関数を使用して、Javaで安全に評価します。

JavaScriptObject jsdata = JsonUtils.safeEval(sdata.toString());

drawStock(element、cname、jsdata);

于 2012-10-18T21:22:44.363 に答える
0

この例では、オブジェクト自体ではなく、JSONオブジェクトを含む文字列に割り当てseriesています。オブジェクトに変換するには、次を使用します。eval

series: eval(sdata)
于 2012-09-16T09:10:33.723 に答える