將枚舉Enum轉換爲JSON對象的方法,直接返回對象給前臺

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()方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章