Я знаю об этих аннотациях @JsonInclude (JsonInclude.Include.NON_NULL) и @JsonInclude (JsonInclude.Include.EMPTY), но в моем случае это не работает.
Мой случай:
У меня есть некоторый класс (entity (SomeClass)) с какой-то другой сущностью внутри (SomeObject)
@Data
public class SomeClass {
private String fieldOne;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldTwo;
@JsonInclude(JsonInclude.Include.NON_NULL)
private SomeObject someObject;
}
Entity - SomeObject
@Data
public class SomeObject {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String name;
}
Основной класс
public class Main {
public static void main(String[] args) throws JsonProcessingException {
SomeClass someClass = new SomeClass();
someClass.setFieldOne("some data");
SomeObject someObject = new SomeObject();
someObject.setName(null);
someClass.setSomeObject(someObject);
ObjectMapper objectMapper = new ObjectMapper();
String someClassDeserialized = objectMapper.writeValueAsString(someClass);
System.out.println(someClassDeserialized);
}
}
Вывод
{"fieldOne":"some data","someObject":{}}
Окончательный вывод должен быть без объекта (SomeObject) с пустыми или пустыми полями:
{"fieldOne":"some data"}