в моем приложении Spring Boot REST я действительно хочу добиться, чтобы свойства класса игнорировались Джексоном, если они не установлены явно. Но если они установлены на null
, они должны быть предоставлены и сериализованы.
@JsonInclude(Include.NON_NULL)
игнорирует значения null
, но не делает разницы между фактически не установленными значениями и значениями, которые были явно установлены на null
.
Проверьте следующий пример (с использованием Lombok), который показывает что я хочу достичь здесь:
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Example {
@JsonProperty("name")
private String name;
@JsonProperty("test")
private String test;
}
Example.builder().test("test").build()
должно привести к {test: "test"}
Example.builder().name(null).test("test).build()
должно привести к {name: NULL, test: "test"}
Каков наилучший способ достижения что?