Java枚举以json形式返回给前端

正是江南好风景,赏花时节却无君
——南方

前言

在日常开发中,我们会经常使用到枚举类,但是我们在将枚举代表的含义返回给前端的时候,常常会导致我们只返回枚举的某一部分给前端(不是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.结果如上,简直完美

结尾

以后就再也不用使用字典进行反查了,也算是提升了一丢丢性能吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值