我正在尝试使用Retrofit和Jackson来反序列化一个API。我得到的onFailure错误没有创造者,像默认构造,存在):不能从对象值反序列化(没有委托或基于属性的创造者。
当前回答
使用Lombok时要小心,尤其是@Builder。
解决这个问题的方法是:
@JsonDeserialize(builder = X.XBuilder.class)
class X{
@JsonPOJOBuilder(withPrefix = "")
public static class XBuilder{
}
}
我希望它能让你的生活更轻松
其他回答
我有一个类似的问题(使用Jackson, lombok, gradle)和一个没有args构造函数的POJO -解决方案是添加
lombok.anyConstructor.addConstructorProperties=true
去龙目岛。配置文件
我有这个问题,我修复了下面的代码。
@Configuration
open class JacksonMapper {
@Bean
open fun mapper(): ObjectMapper {
val mapper = ObjectMapper()
...
mapper.registerModule(KotlinModule())
return mapper
}
}
Bek的答案是正确的。
但如果有人试图在restcontroller中使用不可变类,即他们正在使用lombok的@value,那么你需要添加lombok. anyconstructor . addconstructorproperties =true
您可以创建一个名为lombok的文件。在根文件pom.xml所在的相同位置进行配置,并将这一行添加到文件中
https://stackoverflow.com/a/56022839/6700081
我用龙目岛。我得到的错误,因为我没有把@NoArgsConstructor在我的模型类。
只需要添加@NoArgsConstructor就可以了。
推荐文章
- 在android中从上下文获取活动
- 如何在JSON中使用杰克逊更改字段名
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的
- 在Mac OS X上哪里安装Android SDK ?
- 我如何获得图像缩放功能?
- 在Android应用程序中显示当前时间和日期
- BottomSheetDialogFragment的圆角
- 在应用程序启动时出现“无法获得BatchedBridge,请确保您的bundle被正确打包”的错误
- 我如何改变默认对话框按钮的文本颜色在安卓5
- 如何将字符串转换为长在Kotlin?
- 更改单选按钮的圆圈颜色
- 如何在android中复制一个文件?
- adb找不到我的设备/手机(MacOS X)