【发布时间】:2019-07-28 15:51:42
【问题描述】:
我有以下类,我将其用作请求有效负载:
public class SampleRequest {
private String fromDate;
private String toDate;
// Getters and setters removed for brevity.
}
我正在尝试将其与以下资源一起使用(只是尝试将其打印到屏幕上以查看发生的情况):
@PostMapping("/getBySignatureOne")
public ResponseEntity<?> getRequestInfo(@Valid @RequestBody SampleRequest signatureOneRequest) {
System.out.println(signatureOneRequest.getToDate);
System.out.println(signatureOneRequest.getFromDate);
}
这是我发送的 JSON 请求:
{
"fromDate":"2019-03-09",
"toDate":"2019-03-10"
}
这是我得到的错误:
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.test.app.payload.SampleRequest` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('fromDate'); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.test.app.payload.SampleRequest` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('fromDate')
at [Source: (PushbackInputStream); line: 1, column: 2]]
我很想知道这里出了什么问题,我怀疑这是构造函数的问题,或者我在某处遗漏了一些注释,但老实说我不确定我哪里出错了。
【问题讨论】:
-
您的 JSON 请求是什么? SampleRequest 中有构造函数吗?如果是,您还需要有默认构造函数。
-
@cosmos - 呸,我知道我会忘记提供一些东西!我刚刚用我发送的 json 编辑了问题:)
-
添加默认构造函数为我做了!