Jackson枚举处理
@JsonValue
可以用在get方法或者属性字段上,一个类只能用一个,当加上@JsonValue注解时,该类的json化结果,只有这个get方法的返回值,而不是这个类的属性键值对.@JsonCreator
当json在反序列化时,默认选择类的无参构造函数创建类对象,没有无参构造函数时会报错,
前台传入格式
{type:1}
序列化后返回
{val:1;key:"本地"}
枚举类
public enum OOSType {
LOCAL(1,"本地"),ALIYUN(2,"阿里云"),QINIU(3,"七牛云"),TENCENT(4,"腾讯云");
private Integer val;
private String key;
OOSType(Integer val, String key) {
this.val = val;
this.key = key;
}
@JsonCreator
public static OOSType valueOf(int val){
OOSType[] vals = OOSType.values();;
for (OOSType v : vals){
if (v.getVal().equals(val)){
return v;
}
}
return null;
}
@JsonValue
public Integer getVal() {
return val;
}

浙公网安备 33010602011771号