jackson中的@JsonAutoDetect注解
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
们在使用jackson时可能会用到这样一个注解
@JsonAutoDetect
- 示例代码
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE,
isGetterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY,
setterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY,
creatorVisibility = JsonAutoDetect.Visibility.NON_PRIVATE,
fieldVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY)
private static class Student implements Serializable {
private static final long serialVersionUID = -3289647584974663707L;
public String name;
private Integer age;
private String job;
private GenderEnum gender;
private Date birthday;
private String json;
}
这里我们name为public
我们指定了getterVisibility为JsonAutoDetect.Visibility.NONE
然后指定了fieldVisibility为JsonAutoDetect.Visibility.PUBLIC_ONLY
- 序列化一下
Instant from = LocalDateTime.parse("2021-01-09 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH)).toInstant(ZoneOffset.MAX);
Student supa = Student.builder().name("supa").age(20).gender(GenderEnum.MALE).birthday(Date.from(from)).build();
System.out.println(new ObjectMapper().writeValueAsString(supa));
- 结果就只有一个name了
{"name":"supa"}
这里见名思意creatorVisibility就是构造器可见度setterVisibility就是setter可见度等
一般用于控制属性序列化可见度
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 leaflei
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果