Hashmapでのnull値のシリアル化を避ける方法は?
-
01-10-2019 - |
質問
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);
所属していません StackOverflow