I have a requirement that while doing serialization I should be able to to convert all the properties that are with Empty string i.e "" to NULL, I am using Jackson in Spring boot, any idea how can I achieve this?
1 Answer
Yep, it's very simple: use own Serializer for fields which can be empty and must be null:
class TestEntity {
@JsonProperty(value = "test-field")
@JsonSerialize(usung = ForceNullStringSerializer.class)
private String testField;
}
class ForceNullStringSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (value == null || value.equals("")) {
gen.writeNull();
} else {
gen.writeString(value);
}
}
}
This serializer can be applied to all fields where you need to return null.
3 Comments
Muhammad
Thanks Lonash, Is there any way to use these on class level instead of each individual filed?
Dmitry Ionash
Yes, it is. But the logic in this case much more complex.
Muhammad
Dmitry, Would you like to give a hint how this can be done?