在使用fastjson对Java对象进行序列化和反序列化时,如果含有枚举类型,默认会根据枚举变量的ordinal值进行反序列且序列化时显示枚举字面代表的字符串。经常这种行为不是我们想要的,那么如何进行定制化枚举类型的序列化和反序列? 举例如下
问题引出
假设待序列化和反序列化java对象结构如下
public class Msg {
private int id;
private StatusCodeEnum status;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public StatusCodeEnum getStatus() {
return status;
}
public void setStatus(StatusCodeEnum status) {
this.status = status;
}
public static enum StatusCodeEnum {
OK(200, "正常"), SERVER_ERROR(500, "服务器错误");
private static final Map CODE_MAP = new HashMap();
static {
for (StatusCodeEnum typeEnum : StatusCodeEnum.values()) {
CODE_MAP.put(typeEnum.ge