7

Address オブジェクトのリストを持つ Business や、Business を持つ Order などのオブジェクトがあるとします。

注文をシリアル化するときにビジネス オブジェクトからアドレスのリストを除外し、ビジネスをシリアル化するときにリストを含めるように構成することはできますか?

私は ajax を使用して RIA のデータを取得しています。Order を扱うときは住所データはあまり気にしませんが、Business を扱うときはリストが必要です。

また、永続化のために Hibernate を使用しているため、これは実際には効率とパフォーマンスの最適化です。

4

4 に答える 4

8

質問を正しく理解していれば、はい、 JacksonのJSONビューでこれが可能になると思います。基本的に、同じタイプに対して2つの異なるビュー(プロファイル)を作成し、どちらをシリアル化に使用するかを選択します。

于 2010-03-25T21:12:48.577 に答える
5

JsonIgnore Annotationを使用して、シリアル化でアドレスリストを無視し、 Businessをシリアル化するときにObjectMapperSerializationConfigで注釈の使用をオフにすることができます。もちろん、これは、使用する可能性のある他の注釈も無視されることを意味します。完璧ではありませんが、これを調べてより良い解決策を見つけるかもしれません。それが(明らかに)役立つことを願っています。

ObjectMapper mapper = new ObjectMapper();
mapper.getSerializationConfig().disable(Feature.USE_ANNOTATIONS);
于 2010-03-24T14:57:06.840 に答える
0

はい、できます。必要なのは、List of Address をビジネス オブジェクトの一時プロパティとして宣言することだけです。

次に、次のコードを jsonConfig に追加します。

jsonConfig.setIgnoreTransientFields(true);
于 2013-04-18T09:41:53.733 に答える