Autobeans のコンテキストで配列と JSNI に苦労しています。
私の GWT プロジェクトの 1 つで、JSON を使用してバックエンドからデータを取得します。
クライアントでデータが取得されたら、カスタム視覚化ウィジェット (javascript で開発) を使用して視覚化したいと考えています。
コンポーネントは次のとおりです。
JSON 構造:
{'ids':[1,2,3,4],'data':[[1.0],[1.0,2.0],[1.0,2.0,3.0] ... ]}
基本的に、json ペイロードに 2 つのデータセットがあります。idsは int の配列 ( int[]
) であり、dataは float の配列の配列 ( 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 インスタンスに変換する必要があります。それを行うためのより良い/より良い方法はありますか?
または、
Is that more effective?JSONParser
の代わりに使用する必要があるかもしれません。AutoBeans