我正在尝试使用jackson将json反序列化为枚举.如果工厂方法只有一个参数,它工作正常.一旦我们添加更多参数,它就会停止工作.
这是我试过的代码示例.
public enum Test {
FIRST(1,"first");
private final int intProp;
private final String stringProp;
Test(int i,String stringProp) {
this.stringProp = stringProp;
this.intProp = i;
}
private static final Map
使用以下代码反序列化json
String json = "{\"intProp\":1,\"stringProp\":\"first\"}";
ObjectMapper mapper = new ObjectMapper();
Test enumValue = mapper.readValue(json,Test.class); //fails
这是我得到的例外
com.fasterxml.jackson.databind.JsonMappingException: Unsuitable method
版本:jackson-databind 2.5.1,jackson-annotations 2.5.0
我不想写自定义反序列化器,我的方法是否有错误或者杰克逊不支持该选项?
当使用类而不是枚举时,同样的事情也适用.
最佳答案
看起来这个功能实际上在jackson库中缺失了.我已经在jackson-databind github project开了一个问题.将不得不等待他们在即将发布的版本中修复它.