我在某種程度上與Autobeans上下文中的數組和JSNI苦苦掙扎。
在我的一個GWT項目中,我使用JSON從後端檢索數據。
一旦在客戶端檢索到數據,我想使用自定義可視化小部件(使用javascript開發)將其可視化。AutoBean,數組/列表屬性和JSNI
以下是部分:
JSON結構:
{'ids':[1,2,3,4],'data':[[1.0],[1.0,2.0],[1.0,2.0,3.0] ... ]}
基本上我有我的JSON有效載荷兩個數據集。 IDS是整數(int[]
)和數據的陣列是浮筒(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屬性(數據和IDS)到JsArray實例。 有沒有更好的/更好的方法來做到這一點?
或者我應該使用JSONParser
而不是AutoBeans
更高效嗎?
感謝托馬斯的反饋。 我懷疑AutoBean可能不適合我的使用案例。我想從性能的角度來看,JSO和AutoBean應該同樣快(我的數據數組可能有200k浮點值)。 –
JSO將始終比AutoBean執行得更好,因爲AutoBeans具有JSO包裝。他們非常認爲封裝,只是根據需要進行實例化,所以它通常不是問題;但仍然。 –