您可以尝试使用自定义序列化程序
@JsonSerialize
. 大概是这样的:
public class Book{
@JsonProperty("Title")
@JsonSerialize(using = IgnoreSerializer.class)
private String title;
@JsonProperty("Author")
@JsonSerialize(using = IgnoreSerializer.class)
private String author;
public setters & Getters
....
}
public class IgnoreSerializer extends JsonSerializer<String> {
@Override
public void serialize(String s,
JsonGenerator jsonGenerator,
SerializerProvider serializerProvider)
throws IOException, JsonProcessingException {
if(!s.equals("IGNORE")) {
jsonGenerator.writeObject(s);
}
}
}
或者,如果需要基于标题值跳过整个项目,请使用相同的方法定义自定义序列化程序
在你的书本课上。
@JsonSerialize(using = IgnoreByTitleSerializer.class)
public class Book{ ... }
class IgnoreByTitleSerializer extends StdSerializer<Book> {
...
@Override
public void serialize(
Book book, JsonGenerator jgen, SerializerProvider provider)
throws IOException, JsonProcessingException {
if(!book.getTitle().equals("IGNORE") {
...
}
}
}
看见
https://www.baeldung.com/jackson-custom-serialization
例如
upd
正如Dmitry Bogdanovich公正地提到的,这个问题涉及反序列化,所以我相信您可以使用类似的方法
@JsonDeserialize
.