通常,fastjson在序列化及反序列化枚举时,一般以下几种策略:
1).根据枚举的name值序列化及反序列化(默认)
2).根据枚举的ordinal序列化及反序列化
3).根据枚举的toString方法序列化,但是反序列仍采取默认的策略
这显然对我们的业务处理不够灵活,考虑以下一种情况:
有一个文章类,它有标题,内容等属性,其中有一个属性是枚举类,表示文章是否通过审核。
如下:
public class Article { private String title; private String content;private AuditStatus status;public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; }public AuditStatus getStatus() { return status; } public void setStatus(AuditStatus status) { this.status = status; } }
对应的枚举类型,它包含一个标志状态的code:
public enum AuditStatus { AUDITING(1), PASSED(2), FAILED(3); private int code; AuditStatus(int code){ this.code = code; } public int getCode(){ return code; } public static