Ali*_*iti 1 java spring-boot spring-restcontroller
我正在尝试向 Sprin boot 发送一个 POST 请求,其中包含正文中的自定义对象列表。我在请求正文中的 JSON 是这样的:
[{"name":"name1","icon":"icon1"},
{"name":"name2","icon":"icon2"},
{"name":"name3","icon":"icon3"}]
Run Code Online (Sandbox Code Playgroud)
我得到这个错误
Cannot construct instance of `io.wedaily.topics.models.Topic` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
Run Code Online (Sandbox Code Playgroud)
我的控制器:
@PostMapping
public void createTopics(@RequestBody List<Topic> topics) {
System.out.println(topics);
}
Run Code Online (Sandbox Code Playgroud)
我的主题模型:
public class Topic {
private Long id;
private String name;
private String icon;
private Date createdAt;
// Constructor
// Getters
// Setters
}
Run Code Online (Sandbox Code Playgroud)
小智 6
异常是非常明确的,它告诉你到底发生了什么。Jackson 需要一个默认的无参数构造函数,为您想要反序列化的每个字段定义 getter 和 setter,或者,您需要一个带有 Jackson 注释的构造函数,告诉它如何将 json 映射到您的构造函数中。
只需修改您的主题类以包含如下所示的默认构造函数。(如果您使用 lombok 注释您的课程@Data也可以解决问题)
public class Topic {
private Long id;
private String name;
private String icon;
private Date createdAt;
public Topic(){
}
// Other all args constructor
// Getters
// Setters
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |