Jackson 常用注解总结
1、@JsonProperty#
用于属性,以指定名称进行序列化(包括请求和响应)
@Data
public class UserInfo {
@JsonProperty("userName")
private String name;
private GenderEnum gender;
private String password;
private Date birthday;
}
2、@JsonFormat#
用于 Date 类型属性,在序列化时转换成指定格式。可以在 Spring 配置中添加默认格式,也可以在注解上指定
spring:
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
@Data
public class UserInfo {
@JsonProperty("userName")
private String name;
private GenderEnum gender;
private String password;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;
}
3、@JsonValue#
用于枚举中,可以指定序列化枚举时使用的属性。配合 @JsonCreator 使用
在 Mybatis 中使用枚举可以参考这篇文章 如何在 MyBatis 中优雅的使用枚举
@Getter
@AllArgsConstructor
public enum GenderEnum {
MALE(1, "男"),
FEMALE(2, "女"),
;
@JsonValue
private int value;
private String desc;
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
public static GenderEnum getByValue(int value) {
for (GenderEnum genderEnum : values()) {
if (genderEnum.getValue() == value) {
return genderEnum;
}
}
return null;
}
}
4、@JsonIgnore 和 @JsonIgnoreProperties#
前者用于属性上,后者用于类上指定多个属性。用来忽略指定属性
@Data
@JsonIgnoreProperties(value = {"password"})
public class UserInfo {
@JsonProperty("userName")
private String name;
private GenderEnum gender;
@JsonIgnore
private String password;
@JsonFormat(timezone = "GTM+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;
}
作者:revil
出处:https://www.cnblogs.com/revil/p/16243146.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!