在上一篇中,我们学习了如何忽略值为null的字段《Jackson忽略null字段的3种方法》。
相对于忽略null字段,在实际应用中,忽略某些字段的序列化可能更为常见。
Jackson对于如何序列化字段、过滤字段的方法多种多样,非常丰富,这一节先来了解一下3种简单的方法。
本篇内容基于Jackson 2.11.2版本,马上开始学习吧。
使用JsonIgnore注解忽略单个字段
为字段添加@JsonIgnore注解,可以忽略该字段的序列化和反序列化。
public class ArticleIgnore {
private String title;
@JsonIgnore
private String summary;
private String content;
@JsonIgnore
private String author;
// 省略setter、getter方法
@Override
public String toString() {
return "ArticleIgnore [title=" + title + ", summary=" + summary + ", content=" + content + ", author=" + author
+ "]";
}
}
/**
* 为字段添加@JsonIgnore注解,可以忽略该字段的序列化和反序列化。
*
* @throws JsonProcessingException
*/
@Test
public void jsonIgnore() throws JsonProcessingException {
ArticleIgnore article = new ArticleIgnore();
article.setTitle("title");
article.setSummary("summary");
article.setContent("content");
article.setAuthor("author");
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(article));
String str = "{\"title\":\"title\",\"summary\":\"summary\",\"content\":\"content\",\"author\":\"author\"}";
ArticleIgnore newArticle = mapper.readValue(str, ArticleIgnore.class);
System.out