Java jackson mapper版本1.9.12枚举反序列化程序问题
我正在尝试使用Jackson ObjectMapper.readValue(String,Class)API将字符串映射到enum对象,问题是假设我的json字符串包含一个带有动作enum的任务对象,如下所示 公开枚举操作{Java jackson mapper版本1.9.12枚举反序列化程序问题,java,javascript,json,spring-mvc,jackson,Java,Javascript,Json,Spring Mvc,Jackson,我正在尝试使用Jackson ObjectMapper.readValue(String,Class)API将字符串映射到enum对象,问题是假设我的json字符串包含一个带有动作enum的任务对象,如下所示 公开枚举操作{ @XmlEnumValue("Add") ADD("Add"), @XmlEnumValue("Amend") AMEND("Amend"), @XmlEnumValue("Delete") DELETE("Delete"), @XmlEnumValue("Pending"
@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);
}
}
jason字符串类似于“{”action:“Add”}”,然后抛出ObjectMapper.readValue(jsonString,Task.Class)
Action Add的org.codehaus.jackson.map.desr.StdDeserializationContext.weirdStringException(StdDeserializationContext.java:243),因为它无法转换此枚举
我尝试添加自定义序列化程序,但仍然调用了EnumDeserializer。有什么想法吗
所有对象都是JAXB生成的,因此不可能进行注释
感谢您的帮助您是否尝试过:
new ObjectMapper().setAnnotationIntrospector(new JaxbAnnotationIntrospector()).readValue()