Вы можете включить ACCEPT_EMPTY_STRING_AS_NULL_OBJECT
в своем ObjectMapper
:
ObjectMapper mapper = new ObjectMapper();
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
В качестве альтернативы, вы можете определить пользовательский десериализатор:
public class CustomStringDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException {
String value = StringDeserializer.instance.deserialize(p, ctxt);
if (value == null || value.trim().isEmpty()) {
return null;
}
return value;
}
}
И зарегистрируйте его в своем модуле ObjectMapper
:
SimpleModule module = new SimpleModule();
module.addDeserializer(String.class, new CustomStringDeserializer());
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(module);
Этот десериализатор будет использоваться для десериализации всех строк.