正是江南好风景,赏花时节却无君
——南方
前言
在日常开发中,我们会经常使用到枚举类,但是我们在将枚举代表的含义返回给前端的时候,常常会导致我们只返回枚举的某一部分给前端(不是key就是value),那么如果我们想要将key和value都返回给前端该怎么处理呢
一个注解
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
这个注解可以将枚举类序列化为对象,接下来就看怎么使用
使用
1.先来一个简单的枚举类
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum AuditEnum {
PASS(1, "通过"),
REJECT(2, "驳回");
private Integer code;
private String value;
AuditEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
public Integer getCode() {
return code;
}
public String getValue() {
return value;
}
}
2.建一个常用的实体类
@Data
public class Audit {
private String name;
private AuditEnum auditEnum;
}
3.按照个人习惯再来一个vo对象返回前端
@Data
public class AuditVO implements Serializable {
private static final long serialVersionUID = 9051689569410929242L;
private String name;
private AuditEnum auditEnum;
}
4.再来一个controller
@RestController
public class AuditController {
@GetMapping("/test")
public AuditVO test() {
AuditVO vo = new AuditVO();
Audit audit = new Audit();
audit.setName("nflj");
audit.setAuditEnum(AuditEnum.PASS);
BeanUtils.copyProperties(audit, vo);
System.out.println(audit);
return vo;
}
}
5.浏览器测试结果
6.结果如上,简直完美
结尾
以后就再也不用使用字典进行反查了,也算是提升了一丢丢性能吧