为了统一调用,可以定义一个枚举接口类
1 2 3 4 5
| public interface BaseEnum<E extends Enum<E>>{ Integer getCode(); String getMsg();
}
|
然后定义枚举
1 2 3
| public enum CheckStatusEnum implements BaseEnum<CheckStatusEnum>{
}
|
实现自定义序列化
1 2 3 4 5 6 7 8 9 10
| @JackSonStdImpl public class CodeAndMsgEnumSerializer extends JsonSerializer<BaseEnum<? extends Enum<?>>>{ @Override public void serialize(BaseEnum<? extends Enum<?>> baseEnum,JsonGenerator jsonGenerator,SerializerProvider serializerProvider)throws IOException{ jsonGenerator.writeNumber(baseNum.getCode()); jsonGenerator.writeStringField(jsonGenerator.getOutputContext().CurrentName()+"Str",baseEnum,getMsg()); }
}
|
使用方式:
1 2
| @JsonSerialize(using=CodeAndMsgEnumSerializer.class) CheckStatusEnum checkStatus;
|