GWTを使用してBeanを文字列にシリアライズする最も簡単な方法は何ですか?私はGWT.create()呼び出しを使用しないことを好む。GWTでオブジェクトをシリアライズ
答えて
免責事項: URLでBeanをシリアライズすることは、GWTにとってはあまりお勧めできません。私は、URLにデータを置く必要がある場合、できるだけ少なく、ページの状態を復元するために必要なものだけを知っていることを学びました。 Gmailでの履歴トークンの使い方を見てみると、Gmailの履歴トークンはごくわずかです。道のうち、その免責条項付
:
私は私に取り組んでGWTプロジェクトの場合は、単純に区切り文字で区切られた豆の値を書きました。値を読み込む際に、String.split()メソッドを使用して配列を取得しました。その配列では、値を正しいBeanプロパティに割り当てます。コード内:
public class Sample {
private int a;
private boolean b;
private String c;
//getters and setters for fields not shown
public String toHistoryToken(){
return a+"/"+b+"/"+c;
}
public void fromHistoryToken(String token){
String[] values=token.split("/");
a=Integer.parseInt(values[0]);
b=Boolean.parseBoolean(values[1]);
c=values[2];
}
}
さらに複雑なシナリオでは、もっと複雑なことが必要な場合があります。たとえば、ネストされたオブジェクトの場合、値を子オブジェクトに渡すコードを記述する必要があります。
また、使用する値に区切り文字が含まれていないことを確認する必要があることに注意してください。文字列に "/"が含まれていることがわかっている場合は、入れ子の区切り文字をエスケープするためにreplace()操作を行う必要があります。
おそらくこれはあなたが探しているものですか?
:あなたはこれを(右豆からJSON文字列に行く)を行うことができます
http://json-lib.sourceforge.net/
:
Json <-> Java serialization that works with GWT
拡張版:JSON-libのライブラリを使用して
http://json-lib.sourceforge.net/snippets.html#Creating_a_JSONObject_from_a_JavaBean
そういうものですが、私のすべてのクラス(40+)にオーバーレイタイプを書いてはいけません。オブジェクトをStringにシリアライズするシンプルで非介入的な方法が欲しいです。 –
非侵入型は相対的なものです。私が渡す予定のすべてのデータに対してオーバーレイタイプを作成することを検討していますが、BeanからJSON文字列オブジェクトに直接ハッキングする方法が必要な場合は、私の更新を確認してください。 – Organiccat
json-libはGWT(クライアント側)では動作しないと確信しています。おそらく、BeanInfoを通してリフレクションを使用するからです。私は今すぐソースを確認することはできません。 –
私はあなたが最終的に達成しようとしていることを理解していません。
文字列を前後に送信したい場合は、実際に何かを実行する必要はありません。 - 通常のGWT RPCメカニズムを使用して無料で取得できます。 java.lang.String
を返すメソッドを作成し、それに伴う実装とAsyncインターフェイスを作成すれば完了です。
一方、本当にBeanを送信したい場合は、ゼロ引数のコンストラクタがあり、Serializable
またはIsSerializable
を実装していることを確認してください。
URLバーに簡単にBeanを吐き出すことができます。 –
ミゲルが上記のように、GWTには反映されていません。カスタムの "toUrl()"メソッドを作成する方が良いかもしれません。 –
最終的にGWTは(Javaで書かれていても)JavaScriptで動作しています。その意味では、 "Java Bean"はクライアントで簡単に見つかるものではありませんが、サーバーでは(Javaの場合)正常に動作します。
実際にはメソッドなしのオブジェクトであるということを受け入れるならば、そのオブジェクトを使用する際の基本的な意図はデータの移動です。 JavaScriptをネイティブに使用するJSONは、データの非常に柔軟なコンテナとしても機能します。サーバー側では、Beanの配列はBeanUtilsを使用してJSONに変換することができます。 JSONはGWTで文字列としてシリアル化することができ、GWTにはJSONをクライアントのJavaScriptオブジェクトに変換するパーサがあります。
おそらくこれを行うのは簡単な方法ではありませんが、作業を開始すると非常に柔軟です。
私は見つけることができるように最も近いが、このでした:
Faster GWT startup with objects embedded in the HTML host page
- 1. GWT +シリアライズ
- 2. GWTキャンバスをシリアライズ
- 3. GWTでJDBC型をシリアライズ
- 4. GWT TreeMapのOrdering/Comparatorをシリアライズ
- 5. phpオブジェクトのシリアライズ/シリアライズ
- 6. Kryo(カスタムシリアライザ)でオブジェクトをシリアライズ
- 7. Javaで可変オブジェクトをシリアライズ
- 8. シリアライズEntityオブジェクト
- 9. Typescriptオブジェクトのシリアライズ?
- 10. Typesafe Configオブジェクトのシリアライズ
- 11. シリアライズJSONオブジェクトを効果的
- 12. オブジェクトをファイルにシリアライズし、
- 13. JQueryでJSONオブジェクトをシリアライズする方法
- 14. JavaでJSONオブジェクトをシリアライズする方法
- 15. アンドロイドで描画可能オブジェクトをシリアライズ
- 16. WCFでオブジェクトのリストをシリアライズして
- 17. ジャンクションでデータのないオブジェクトをシリアライズ
- 18. ネストされたオブジェクトとシリアライズ
- 19. ジャワ - オブジェクトのデフォルトのシリアライズ
- 20. 非シリアライズ可能オブジェクト - ネットワーク
- 21. シリアライズされたオブジェクトのオントロジー
- 22. XMLにシリアライズしてシリアライズされたオブジェクトの型を含める
- 23. Androidでオブジェクトのリストを含むオブジェクトのリストをシリアライズ
- 24. Javascriptオブジェクトはシリアライズ可能です
- 25. restsharpでオブジェクトをシリアライズし、リストをシリアライズしないWebApiに渡します
- 26. JavaScript内の親オブジェクト内で子オブジェクトをシリアライズする
- 27. ラージオブジェクトシングルタイムのシリアライズ/デシリアライズVs小さなオブジェクトのシリアライズ/デシリアライズ複数回?
- 28. MarshalByRefObjectフィールドを持つシリアライズ可能オブジェクト
- 29. Symfony 3 - DateTimeオブジェクトを自動的にシリアライズ
- 30. GWTで画像オブジェクトをアップロードする
文字列のどのようなことをいっているのですか"property = value"のペアのリスト? –
元のインスタンスに前後に変換できる限り、任意の種類の文字列。 –