2

Play Framework で FlexJSON 2.1 を使用する場合、カスタムオーダーを使用するにはどうすればよいですか? 今私は持っています:

public String toJsonString() {
    // Include id & name, exclude all others.
    JSONSerializer ser = new JSONSerializer().include(
           "id",
           "firstName",
           "lastName",
           "email",
           "authToken",
           "dob",
           "home_zip",
           "gender",
    ).exclude("*").prettyPrint(true);
   return ser.serialize(this);
 }

そして、アルファベット順に印刷されます。

このSO 投稿を見つけましたが、@XMLRootElement として定義されたクラスはありません。FlexJSON にカスタム順序を使用するように指示するにはどうすればよいですか?

4

1 に答える 1

2

順序は、データ構造自体からのみ派生します。順序を使用するデータ構造 (つまり、List、TreeSet、TreeMap) には順序があります。オブジェクト内のフィールドまたは HashMap の順序は保証されません。要するに、自然な順序以外のものに明示的に課される順序はありません。必要に応じて、デフォルトのシリアライゼーション Transformers を試してオーバーライドし、順序を課すことができます。ObjectTransformer と MapTransformer をサブクラス化し、順序を課すことから始めることができます。

JavaScriptのオブジェクト内のフィールドにも順序がないため、JSONデータ構造の順序付けは奇妙に思えます。なぜこれが重要なのか想像できません。

于 2013-06-10T01:29:33.373 に答える