我有一个Enum,它是这样的:
public enum Level {
HIGH ("hi"),
MEDIUM("med"),
LOW ("lo")
;
private final String levelCode;
private Level(String levelCode) {
this.levelCode = levelCode;
}
}
此枚举是另一个请求类中的元素,如:
public class RequestPOJO{
Level level;
int somefield1; //other instance varilables
//...... other instance varilables
}
我想将JSON请求中的字符串字段(名称为levelCode)映射到此枚举。我正在使用Jackson进行序列化。有没有办法将请求中的此字符串字段直接映射到此枚举。
答案 0 :(得分:2)
您可以在enum
内为String
内的新方法使用levelCode
注释。该方法应该返回enum
,这只是示例中的int
。如果这样做,这解决了序列化和反序列化的问题。
只是为了让您了解情况,如果@JsonCreator
由于杰克逊的错误导致<a>
字段,这将无法正常工作。在这种情况下,您需要使用href
来遵循不同的方法。
您可以参考my blog了解实施示例。