jackson 列舉 enum json 解析型別 返回數字 或者自定義文字 How To Serialize Enums as JSON Objects with Jackson
阿新 • • 發佈:2020-08-07
1、列舉類如下
package com.irobotzz.docs.bms.constants; import com.baomidou.mybatisplus.annotation.EnumValue; import com.common.auth.constants.IBaseEnum; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonValue; import lombok.Getter; /** * 使用者啟用狀態 * * @author Yungui.zheng * @date 2020/05/11 */ @Getter @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum StatusEnum implements IBaseEnum<Integer> { /** * 使用者啟用狀態常量 */ DISABLED(0, "停用"), ENABLED(1, "啟用"), UNKNOWN(-1,"未知"); @EnumValue private final Integer value; private final String desc; StatusEnum(Integer value, String desc) { this.value = value; this.desc = desc; } }
這種寫法返回到前端時一個物件:{value:1,desc:"啟用"}
2、希望返回數字value,使用註解@JsonValue
package com.irobotzz.docs.bms.constants; import com.baomidou.mybatisplus.annotation.EnumValue; import com.common.auth.constants.IBaseEnum; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonValue; import lombok.Getter; /** * 使用者啟用狀態 * * @author Yungui.zheng * @date 2020/05/11 */ @Getter @JsonFormat(shape = JsonFormat.Shape.OBJECT) public enum StatusEnum implements IBaseEnum<Integer> { /** * 使用者啟用狀態常量 */ DISABLED(0, "停用"), ENABLED(1, "啟用"), UNKNOWN(-1,"未知"); @EnumValue @JsonValue private final Integer value; private final String desc; StatusEnum(Integer value, String desc) { this.value = value; this.desc = desc; } }
這個時候返回值為:1