gpt4 book ai didi

JSON 解析错误 : Cannot construct instance of `com.dto.IdDTO` (although at least one Creator exists)

转载 作者:行者123 更新时间:2023-12-03 16:10:13 27 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,使用 Azul 的 2.2.4 版和 Zulu Java 11.0.5。它正在访问部署在 Payara Web 服务器(版本 5.194)上的 REST Web 服务。

我正在使用以下 DTO:

public class IdDTO extends BasicResponseDTO {
private long id;

public IdDTO(long id) {
this.id = id;
}

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

}


public class BasicResponseDTO implements Serializable {

private String errorCode;

public BasicResponseDTO() {
this.setErrorCode(null);
}

public String getErrorCode() {
return errorCode;
}

public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}

}

我调用了一个 REST web 服务,从 Postman 那里我看到我收到(正确)以下响应:
{
"errorCode": null,
"id": 3534016
}

但是,当我检索响应时,出现以下异常:
class org.springframework.web.client.RestClientException/Error while extracting response for type [class com.dto.IdDTO] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of `com.dto.IdDTO` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.dto.IdDTO` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: (PushbackInputStream); line: 1, column: 2]

有没有人知道为什么应用程序无法将接收到的 JSON 映射到对象?

附言1) 我还有其他扩展 BasicResponseDTO 的 DTO,反序列化对他们来说很好。

附言2) 类的定义在服务器端和客户端是相同的。

最佳答案

IdDTO 上没有默认构造函数。只有一个需要 id:

public IdDTO(long id) {
this.id = id;
}

你必须添加一个:
public IdDTO() {
}

这是 JSON 反序列化从您的类构造对象所必需的

关于JSON 解析错误 : Cannot construct instance of `com.dto.IdDTO` (although at least one Creator exists),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60490688/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com