【发布时间】:2012-05-31 12:53:35
【问题描述】:
我在 Autobeans 的上下文中不知何故在处理数组和 JSNI。
在我的一个 GWT 项目中,我使用 JSON 从后端检索数据。
在客户端上检索到数据后,我想使用自定义可视化小部件(用 javascript 开发)对其进行可视化。
以下是组件:
JSON 结构:
{'ids':[1,2,3,4],'data':[[1.0],[1.0,2.0],[1.0,2.0,3.0] ... ]}
基本上,我的 json 有效负载中有两个数据集。 ids 是整数数组 (int[]),data 是浮点数组 (float[][])
当然有不同的方法来解析客户端上的数据。我决定使用 AutoBeans。所以我为我的 json 结构定义了一个接口。
AutoBean:
interface MyData {
List<Integer> ids;
List<List<Float>> data;
}
解析数据工作正常。
我的自定义可视化小部件有一个 API 函数来设置如下所示的数据:
function api_setData(ids,data) {
//ids should be an Array of Ints
//data should be an array of array of Floats.
}
问题是我不能使用 JSNI 来使用普通的 Java 数组。我必须使用JsArray。
public final native void setData(JsArrayInteger ids,JsArray<JsArrayInteger> data /*-{
this.api_setData(ids,data);
}-*/;
所以我必须将我的 AutoBean 属性(data 和 ids)转换为 JsArray 实例。 有没有更好/更好的方法来做到这一点?
或者我应该使用JSONParser 而不是AutoBeans
这样更有效率吗?
【问题讨论】: