将枚举Enum转换为JSON对象的方法,直接返回对象给前台

    技术2022-07-14  102

    ObjectMapper默认将枚举类型Enum转换为它的名称,亦即为字符串,比如将枚举ENABLE(0, “启用”),输出为“ENABLE”,但是前台想要的是对象类型的格式{“value”:“1”,“name”:“禁用”},这种时候加个注解即可

    import com.fasterxml.jackson.annotation.JsonFormat; /** * 模板状态枚举 */ @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum TemplateStateEnum { ENABLE(0, "启用"), DISABLE(1, "禁用"); // 值 private int value; // 名称 private String name; private TemplateStateEnum(int value, String name) { this.value = value; this.name = name; } /** * **根据value值获取枚举对象** * @param value */ public static TemplateStateEnum getEnum(int value){ TemplateStateEnum[] arr$=values(); int len$ = arr$.length; for(int i$ = 0; i$ < len$; ++i$) { TemplateStateEnum status = arr$[i$]; if (status.getValue()==value) { return status; } } return null; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

    加上注解如下: @JsonFormat(shape = JsonFormat.Shape.OBJECT)

    返回的时候直接返回枚举对象TemplateStateEnum即可 获取枚举对象的方法是上述代码里的getEnum()方法

    Processed: 0.015, SQL: 9