を空にNULLのコレクションを変更します。ジャクソンデシリアライザ - 私は属性としてコレクションを含むエンティティを持っている1
public class Entity {
@JsonProperty(value="homes")
@JsonDeserialize(as=HashSet.class, contentAs=HomeImpl.class)
private Collection<Home> homes = new ArrayList<Home>();
}
を要求は、要求特性としてnullが含まれている場合:
{
"homes": null
}
その後、家がnullに設定されています。私がしたいことは、家を空リストにすることです。このために特別なデシリアライザを作成する必要がありますか、コレクション用のデシリアライザがありますか?私が試みたのはこのデシリアライザですが、見た目は醜いです(一般的ではなく、インターフェイスの代わりに実装を使用しています)。
public class NotNullCollectionDeserializer extends JsonDeserializer<Collection<HomeImpl>> {
@Override
public Collection<HomeImpl> deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return jsonParser.readValueAs(new TypeReference<Collection<HomeImpl>>(){});
}
@Override
public Collection<HomeImpl> getNullValue() {
return Collections.emptyList();
}
}
だから、いくつかの質問:
- 直列化復元時に空のコレクションにヌルを変更するいくつかのジャクソンのプロパティがありますか?
- 最初のポイントのためのいいえの場合 - 私はこのためにデシリアライザを書くために必要なのですか?はいの場合は、一般的なものを書くことはできますか?