我有以下枚举:
public enum NotificationType {
Store("S"),
Employee("E"),
Department("D"),
All("A");
public String value;
NotificationType(String value) {
this.value = value;
}
@Override
public String toString() {
return this.value;
}
@JsonCreator
public static NotificationType fromValue(String value) {
for (NotificationType type : NotificationType.values()) {
if (type.value.equals(value)) {
return type;
}
}
throw new IllegalArgumentException();
}
}
我创建了一个转换器,以便在将枚举保存到数据库时,它会保留值(S,E,D或A)而不是名称。我可以POST
json到控制器的值,并正确绑定到对象。
然而,当我从GET
呈现JSON时,它仍然显示名称(Employee,Store等),我希望它仍然显示该值。
答案 0 :(得分:3)
因为您的toString
方法返回了您要用来表示枚举的值,所以您可以使用@JsonValue
对其进行注释,告诉Jackson返回值表示枚举的值。