Jersey(MOXy)でJSONバインドをカスタマイズする
JSONをリクエストで投げてJersey(MOXy)でPOJOとして受ける際に、Integerのフィールドに空文字が来ると「0」に変換される。
0じゃなくてnullで受けたい、というように変換をカスタマイズした場合はXmlAdapterを継承したadapterを作る。
参考:JAXBのXmlAdapterを自作する - Programming Studio
JerseyというかJAXBの仕様らしい。なのでアノテーションやクラスがXml・・・となってJSONで使うには違和感があるがちゃんと動作する。
で、@XmlJavaTypeAdapterでadapterクラスを指定する。
@XmlJavaTypeAdapterは@Target(value={PACKAGE,FIELD,METHOD,TYPE,PARAMETER})となっているので、指定する箇所で有効範囲が変わる。
いちおう試して動いたが、結局Backbone.stickitのonSetで空文字 => null変換して済ませちゃったのは内緒の話。