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