我有一个像下面的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);