为了账号安全,请及时绑定邮箱和手机立即绑定

使用 writeValueAsString 序列化对象后,Jackson 反序列化失败

使用 writeValueAsString 序列化对象后,Jackson 反序列化失败

慕后森 2021-05-31 17:17:32
使用 com.fasterxml.jackson.databind.ObjectMapper 类(com.fasterxml.jackson.core:jackson-databind:2.9.5) 我试图反序列化以下类的对象:class MyClass {    String name;    MyClass(String name) {        this.name = name;    }}我目前正在执行的代码如下:    MyClass myClass = new MyClass("test");    objectMapper.registerModule(new ParameterNamesModule())        .registerModule(new Jdk8Module())        .registerModule(new JavaTimeModule())        .configure(FAIL_ON_UNKNOWN_PROPERTIES, false)        .setVisibility(PropertyAccessor.FIELD, Visibility.ANY);    String text = objectMapper.writeValueAsString(myClass);    objectMapper.readValue(text, MyClass.class);在抛出异常的最后一行失败:com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造实例com.pckge.MyClass(尽管至少存在一个创建者):无法从 [Source: (String)"{" 处的对象值(无基于委托或基于属性的创建者)反序列化名称":"测试"}"; 行:1,列:2]我的目标是配置对象映射器,以便在不使用 MyClass 构造函数上的 JsonCreator 或 JsonProperties 等注释的情况下成功反序列化对象:这是可行的吗?我缺少哪个配置?非常感谢!
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

如果您使用 lombok 删除类的 @Builder 注释,是我的问题


查看完整回答
反对 回复 2021-06-02
  • 3 回答
  • 0 关注
  • 1422 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信