質問

Jackson JSONプロセッサを介して、Hashmapを文字列としてシリアル化したいと思います。例えば:

String strMap = getMapper().writeValueAsString(myHashMap);
result output -> {"r_id":6,"a_am":null,"smb":"Submit","a_li":null,"l_id":878,"pos":[1345,1346,1347]}

MAPのnull値のシリアル化を無効にする方法がわかりません。このようなジャクソンを構成する場合、Pojoの場合にのみ正常に動作します。

mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
役に立ちましたか?

解決

それが価値があることのために、ジャクソン1.6はこれを持っています:

objectMapper.configure(SerializationConfig.WRITE_NULL_MAP_VALUES, false);

あなたが望むことをします。既存の方法は豆に対してのみ機能し、最大の逆方向の互換性を確保するために変更されていません。

編集:コメントに関するメモによると、これはJackson 1.x向けです。 Jackson 2.Xにはマッチングがあります SerializationFeature

他のヒント

これがヌルフィールドを無視するための最新の注釈です

@jsonserialize(include = jsonserialize.inclusion.non_null)

ジャクソン2.1.2を使用して、クラスに注釈を付けることができることがわかりました@JsonInclude(Include.NON_NULL) そのため、ヌルはまったくシリアル化されていません。

または、@jsonwritenullproperties(false)で豆に注釈を付けることができます。

ObjectMapperで最新のJacksonバージョンを使用すると、次のことができます。

mapper.setserializationinclusion(jsoninclude.include.non_null);

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top