Java将枚举类转为json返回给前端
1.后端将枚举类直接返回给前端时只会显示枚举名称
后端经常会使用到枚举类,想让前端知晓这个枚举类中常量的含义,要将其返回给前端。
直接返回枚举类的话,前端只会显示枚举名称,不是很友好。
2.使用 @JsonFormat 注解可以将枚举类转为json再返回给前端。
2.1添加maven依赖
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency>
2.2在枚举类上添加@JsonFormat(shape = JsonFormat.Shape.OBJECT)
importcom.fasterxml.jackson.annotation.JsonFormat;importlombok.Getter;@Getter@JsonFormat(shape =JsonFormat.Shape.OBJECT)publicenumPhaseEnum{//0:接地端,1:导线端A相, 2: 导线端B相,3: 导线端C相,4: 接地端A相,5: 接地端B相,6: 接地端C相PHASE_0(0,"接地端"),PHASE_1(1,"导线端A相"),PHASE_2(2,"导线端B相"),PHASE_3(3,"导线端C相"),PHASE_4(4,"接地端A相"),PHASE_5(5,"接地端B相"),PHASE_6(6,"接地端C相");privatefinalInteger code;privatefinalString name;PhaseEnum(Integer code,String name){this.code = code;this.name = name;}/**
*根据name查code
**/publicstaticIntegergetCodeByName(String name){for(PhaseEnum phaseEnum :PhaseEnum.values()){if(phaseEnum.getName().equals(name)){return phaseEnum.getCode();}}returnnull;}/**
*根据name查枚举类
**/publicstaticPhaseEnumgetPhaseEnum(String name){for(PhaseEnum temp :PhaseEnum.values()){if(temp.getName().equals(name)){return temp;}}returnnull;}}
2.3编写接口返回给前端
/**
* 获取地线部件的相位枚举
**/@RequestMapping(value ="/getEarthwirePhase.do", method ={RequestMethod.GET})@ResponseBody@ApiOperation(value ="获取地线部件的相位枚举", notes ="获取地线部件的相位枚举")publicObjectgetEarthwirePhase(){returnRestResponse.success(PhaseEnum.values());}
本文转载自: https://blog.csdn.net/weixin_44330367/article/details/135108108
版权归原作者 funfan0517 所有, 如有侵权,请联系我们删除。
版权归原作者 funfan0517 所有, 如有侵权,请联系我们删除。