首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与默认构造一样,没有任何创建者存在):无法从对象值反序列化(没有委托或基于属性的Creator )。

与默认构造一样,没有任何创建者存在):无法从对象值反序列化(没有委托或基于属性的Creator )。
EN

Stack Overflow用户
提问于 2018-11-07 14:29:25
回答 31查看 393.5K关注 0票数 255

我正在尝试使用一个API,使用Retrofit和Jackson反序列化。我正在得到onFailure错误No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator

EN

回答 31

Stack Overflow用户

回答已采纳

发布于 2018-11-07 15:34:24

原因:发生此错误是因为杰克逊库不知道如何创建没有空构造函数的模型,而模型包含的构造函数没有用@JsonProperty("field_name")对参数进行注释。默认情况下,如果没有向类添加构造函数,java编译器将创建空构造函数。

解决方案:向模型中添加一个空构造函数或用@JsonProperty("field_name")注释构造函数参数

如果您使用Kotlin数据类,那么也可以使用@JsonProperty("field_name")进行注释或将jackson模块kotlin注册到ObjectMapper

您可以使用http://www.jsonschema2pojo.org/创建模型。

票数 252
EN

Stack Overflow用户

发布于 2019-07-07 16:22:46

我在这里寻找这个错误:

代码语言:javascript
运行
复制
No Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator

与Retrofit无关,但是如果您正在使用Jackson,则通过向抛出错误的类添加默认构造函数来解决此错误。这里有更多信息:https://www.baeldung.com/jackson-exception

票数 109
EN

Stack Overflow用户

发布于 2019-12-10 21:35:43

如果在POJO模型上使用Lombok,请确保有以下注释:

代码语言:javascript
运行
复制
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor

它可能会有所不同,但要确保@Getter,特别是

票数 70
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53191468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档