2012-02-26 11 views
2

Play Frameworkを使用して、いくつかのJSONオブジェクトを返すREST APIを公開しています。 APIの使用を簡素化するために、私は応答に "計算された"フィールドを返したいと思います。私のテストでは残念ながらFlexJson経由でモデル内の過渡フィールドをシリアル化する方法は?

FlexJsonが完全過渡モデルフィールドを無視し、常に「NULL」にそれらを設定しません。

詳細:

モデルクラスにおいて、Iは定義:

@Transient 
public String currencyName; 

(デバッグ目的のための) "ドル" の値に設定クラスののみコンストラクタ

this.currencyName = "dollar"; 

FlexJsonを使用してクラスをシリアル化するとき、 'currencyName'フィールドdがで指定されていない含める/除外 - 結果は常に次のようになります。間違ってました、そしてどのようにJSONにシリアライズフィールドの値を取得するにはどのような

"currencyName":null 

任意のアイデア?

ありがとうございます。

答えて

3

フィールドが一時的な場合は、シリアル化されません。おそらく、状態が重要な場合は、このフィールドはアプリケーションで一時的であってはなりません。

+0

ありがとうございました。私は、アプリケーション間でオブジェクト "状態"を転送するのではなく、 "クリーンな" JSONを生成するためにシリアル化を使用しています。私の考えでは、 "this.currency"から "print out"へのフィールドをJSONに設定するのではなく、計算フィールドを使用してJSONフォーマットを直接指定していました。どんな考え? – Max

+0

このフィールドを永続化することに関心がない場合や、状態を保持しない場合は、このフィールドを完全に削除しないでください。 String getCurrencyName() – emt14

+0

または、シリアライザからexcludeメソッドを使用することもできます。新しいJSONSerializer()。exclude( "currencyName")。serialize( "Currency"、currency); – emt14

関連する問題