spring MVC で jackson を使用してオブジェクトをシリアライズしたいと考えています。
プロパティ ObjectTest2 を持つ ObjectTest1 を返すコントローラーがあります。
public class ObjectTest1{
private ObjectTest2;
// setters getters...
}
public class ObjectTest2{
private String value;
// setters getters...
}
public @ResponseBody ObjectTest1 test() throws IOException ...
私にはマッパーがあり、ObjectTest2 のシリアライザーがあり、ObjectTest1.getObjectTest2 メソッドに @JsonSerialize(using = ObjectTest2.class) のアノテーションを付けました。
それは正しく動作します!しかし、ObjectTest1 だけでなく、多くのオブジェクトでこのシリアライザーを使用したいと考えています。
ゲッターメソッドごとに注釈を付けないようにするにはどうすればよいですか? ObjectTest2 であるすべてのプロパティに対して、このシリアライザーを自動的に使用できますか?
更新しました:
私はすでにコードでこれを使用しています:
<mvc:annotation-driven>
ajax 応答では、json として正しく生成されたオブジェクト。多分私は別の方法で説明しようとする必要があります。
そう。私はこれらのオブジェクトを持っています:
public class DTO{
private InnerThing innerThing;
@JsonSerialize(using=ThingSerializer.class)
public InnerThing getThing(){...}
}
public class InnerThing{
private String value;
}
生成された json は次のようになります。
{"innerThing":{"value":"something"}}
シリアライザーを作成した後、json は次のようになります。
{"innerThing":"something"}
問題ありませんが、json の 2 番目のバージョンを取得するには、DTO クラスの getInnerThing メソッドに @JsonSerialize という注釈を付ける必要があります...
InnerThing をプロパティとして使用するすべてのメソッドに注釈を付けたくありません。だから私の質問は、タイプが InnerThing であるすべてのプロパティを自動シリアル化することができますか?