Jersey 使用Jackson对枚举数类型进行反序列化/序列化
我有一个实体正在序列化为JSON,也正在从JSON反序列化:Jersey 使用Jackson对枚举数类型进行反序列化/序列化,jersey,jackson,Jersey,Jackson,我有一个实体正在序列化为JSON,也正在从JSON反序列化: public class Item { @JsonProperty private Status status; .... } 状态枚举如下所示: public enum Status { NEW, ACTIVE, PENDING, ERROR; } 我希望带注释的枚举类型序列化为,例如,{status:“NEW”},并将其反序列化为枚举类型。是否对此有单独的注释?您需要在枚举中添加一
public class Item {
@JsonProperty private Status status;
....
}
状态枚举如下所示:
public enum Status {
NEW,
ACTIVE,
PENDING,
ERROR;
}
我希望带注释的枚举类型序列化为,例如,{status:“NEW”},并将其反序列化为枚举类型。是否对此有单独的注释?您需要在枚举中添加一些其他方法:
@Override
@JsonValue
public String toString()
{
return super.toString().toUpperCase(Locale.ENGLISH);
}
@JsonCreator
public static Status fromString(final String status)
{
if (status == null)
{
return null;
}
try
{
return valueOf(status.toUpperCase(Locale.ENGLISH));
}
catch (IllegalArgumentException iae)
{
System.err.println("Invalid status");
}
}
这些还确保状态转换不区分大小写(因此“new”状态仍将转换为正确的枚举)