加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 01:03:35 所属栏目:Java 来源:网络整理
导读:我正在尝试使用jackson将json反序列化为枚举.如果工厂方法只有一个参数,它工作正常.一旦我们添加更多参数,它就会停止工作. 这是我试过的代码示例. public enum Test { FIRST(1,"first"); private final int intProp; private final String stringProp; Test(

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读