GWT-JSNI-传递json对象



我有一个类似下面的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(元素元素,字符串cname,字符串sdata)/*-{var chart=新$wnd.Highcharts.StockChart({图表:{renderTo:元素},范围选择器:{选定:1},标题:{text:cname},series:sdata//=====这里应该分配json。});回归图;}-*/;

上面的本机函数没有按预期工作,因为"我相信",sdata变量周围有一个双引号,因此javascript不认为它是json对象。

如何将没有引号的json对象从java传递到javascript本机接口函数?

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

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

drawStock(元素,cname,jsdata);

在您的示例中,您将series分配给包含JSON对象的字符串,而不是对象本身。要将其转换为对象,请使用eval:

series: eval(sdata)

最新更新