JAXBを介してアンマーシャリングしている間、JerseyにはJSON nullの事前定義されたデフォルト値のセットがあるようです:文字列=> ""、整数=> 0、...構成または注釈のいずれかでこれらの値を簡単に制御する方法はありますか?
ジャージーのPOJOマッピングを使用すると、JSONnullをJavanullにマッピングするという必要なものが得られますが、他の理由から、実際にはJAXBを使用する必要があります。
これは単純なはずですが、私は空白を描いています。
ありがとう。
注: 私はEclipseLink JAXB(MOXy)のリーダーであり、JAXB(JSR-222)エキスパートグループのメンバーです。
JAXB(JSR-222)仕様はJSONバインディングをカバーしていないため、発生しているのは、JerseyコードがJAXBリファレンス実装と相互作用してnull処理で奇妙な結果を生成することです。EclipseLink MOXyは、JAXB準拠の実装であり、より自然なnull処理を備えたJSONバインディングも提供します。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Customer {
private String firstName;
@XmlElement(nillable=true)
private String lastName;
}
これをJSONにマーシャリングすると、結果は次のようになります。ヌル値は、注釈が付けられていない限り、JSONにマーシャリングされません@XmlElement(nillable=true)
。
{
lastName: null
}
詳細については
ジャージー統合