java – 使用工厂方法使用@JsonCreator反序列化枚举

前端之家收集整理的这篇文章主要介绍了java – 使用工厂方法使用@JsonCreator反序列化枚举前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试使用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开了一个问题.将不得不等待他们在即将发布的版本中修复它.

猜你在找的Java相关文章