【发布时间】:2019-11-04 14:32:48
【问题描述】:
控制器方法:
@PostMapping("/nova")
@ResponseStatus(HttpStatus.CREATED)
public String adicionarTemp(@RequestBody TempCaptacao temp) {
参数类:
public class TempCaptacao{
String dsNome;
...
List<TempResponsavel> listaResponsavel;
public TempCaptacao() {
}
子参数类:
public class TempResponsavel{
Long id;
String dsNome;
...
public TempResponsavel() {
}
当 Angular 调用这个方法时,传递一个 JSON(如下)我的 springs 会返回这个错误:
.w.s.m.s.DefaultHandlerExceptionResolver : 已解决 [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construction instance of com.spin.spincare.controller.MovAtendimentoCaptacaoController$TempCaptacao (虽然至少有一个 Creator 存在): 只能使用默认实例化非静态内部类, 无参数构造函数;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException: 无法构造 com.spin.spincare.controller.MovAtendimentoCaptacaoController$TempCaptacao 的实例(尽管至少存在一个 Creator):只能使用默认的无参数构造函数来实例化非静态内部类
在 [来源:(PushbackInputStream);行:1,列:2]]
JSON:
{
"dsNome":"teste",
"dsGenero":"Masculino",
"dtNascimento":"2000-12-30T02:00:00.000Z",
"idConvenio":16,
"dsCep":"12321321",
"dsEndereco":"teste",
"dsEstado":"SC",
"dsCidade":"",
"dsBairro":"",
"dsComplemento":"",
"listaResponsavel":[
{
"id":1,
"dsNome":"teste",
"nrCelular":"231321312213",
"dsEmail":"",
"dsGrau":"Pai"
}
]
}
我有那些空的构造方法,但是在我的类中有一个列表,我怎样才能将这个类作为参数传递给我的 POST 方法?
编辑
我的 TempCaptacao 类缺少静态定义。 谢谢!
【问题讨论】:
-
这个错误听起来你需要创建参数化构造函数
-
1.你能提供格式化的JSON吗? 2、你还有其他的构造函数吗? Java 默认提供空的。
-
@MoxxiManagarm 你能给我发个例子吗?
-
@Noskol 主题已更新
-
您确实需要发布所有构造函数的完整代码。它不是在抱怨这份名单。它抱怨它无法构造父类。可能是因为您将子类嵌套在父类中(?)。用您发布的代码看不到。
标签: java angular spring-boot jpa