0
我想映射字符串枚舉對象使用傑克遜ObjectMapper.readValue(字符串,類)的API,問題是讓我說我的json字符串包含任務對象與操作枚舉如下jackson-mapper版本1.9.12 EnumDeserializer問題
公共枚舉行動{
@XmlEnumValue("Add")
ADD("Add"),
@XmlEnumValue("Amend")
AMEND("Amend"),
@XmlEnumValue("Delete")
DELETE("Delete"),
@XmlEnumValue("Pending")
PENDING("Pending");
private final String value;
Action(String v) {
value = v;
}
public String value() {
return value;
}
public static Action fromValue(String v) {
for (Action c: Action.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
和賈森字符串會是這樣 「{」 行動 「:」 添加 「}」,然後ObjectMapper.readValue(jsonString,Task.Class)拋出
org.codehaus.jackson.map.deser.StdDeserializationContext.weirdStringException(StdDeserializationContext.java:243)for Action Add因爲它不能轉換這個枚舉。
我試着添加自定義的Desiserializer,但EnumDeserializer反正被調用。有任何想法嗎?
所有對象都是JAXB生成的,所以註釋不可能。
感謝您的幫助
謝謝,它解決了問題 – user1224036
那麼它實際上回答了這個問題.....尷尬。 – HiJon89