网上这类资料很少,自己总结一下:
@Data
@AllArgsConstructor
public static enum Event {
FORGOT_PASSWORD("forgot password",200),
GET_PASSWORD("get password",2001);
private final String value;
private final int code;
}
jackson的枚举序列化
默认序列化为enum的name
Event.GET_PASSWORD序列化为"GET_PASSWORD"
反序列化也一样,只有string为"GET_PASSWORD"才可以反序列化为Event.GET_PASSWORD
自定义序列化字段,通过@JsonValue注解,指定哪个字段用于序列化和反序列化
@Data
@AllArgsConstructor
public static enum Event {
FORGOT_PASSWORD("forgot password",200),
GET_PASSWORD("get password",2001);
private final String value;
private final int code;
@JsonValue
public int toValu1e(){
return this.code;
}
}
这样就可以 通过"200"序列化为Event.GET_PASSWORD