我有一个像下面的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 静态本机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中的json对象传递给javascript本机接口(interface)函数?

最佳答案

使用safeEval函数在Java中进行安全评估。

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

drawStock(element,cname,jsdata);

10-06 04:58