- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有多个 DTO 对象,它们都如下所示:
@Getter
@RequiredArgsConstructor
public class SomeDTO {
private final String someProperty;
}
这些 DTO 对象在各种 RestController
方法中被接受:
@RestController
public void InvitationController {
@PostMapping
public String create(@RequestBody InvitationCreationDTO invitationCreationDTO) {
// some logic
return "ok";
}
}
Jackson 将 json 反序列化为这些类时没有问题,但以下类除外:
@Getter
@RequiredArgsConstructor
public class InvitationCreationDTO {
private final String emailAddress;
}
当 Jackson 尝试反序列化以下 JSON 时:
{ "emailAddress" : "some@email.com" }
抛出此错误:
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `my.package.InvitationCreationDTO` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: (PushbackInputStream); line: 1, column: 2]
at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1429) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1059) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1297) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202) ~[jackson-databind-2.10.2.jar:2.10.2]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3258) ~[jackson-databind-2.10.2.jar:2.10.2]
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:239) ~[spring-web-5.2.3.RELEASE.jar:5.2.3.RELEASE]
... 86 common frames omitted
但是,当我删除 @RequiredArgsConstructor
并自己创建一个时,它会起作用:
@Getter
public class InvitationCreationDTO {
private final String emailAddress;
@JsonCreator
public InvitationCreationDTO(String emailAddress) {
this.emailAddress = emailAddress;
}
}
为什么这个类需要这个,但我的其他 DTO 类(具有相同的格式)不需要?
最佳答案
尝试将 @NoArgsConstructor
添加到您的 InvitationCreationDTO
类
@Getter
@NoArgsConstructor
@RequiredArgsConstructor
public class InvitationCreationDTO {
private final String emailAddress;
}
关于java - “@RequiredArgsConstructor”和 'MismatchedInputException: Cannot construct instance',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61622626/
我有以下类(class) public class Cart { private final String id; public Cart(String id) { this.id =
我有一个 PSQL 表,其中一列包含 jsonb 数据: CREATE TABLE IF NOT EXISTS user ( user_name VARCHAR(255) NOT NULL,
我正在尝试读取我的 .json 文件。是一个 VehicleRepository 类。 "{\"vehicles\":[{\"id\":\"9467d079-4502-4dba-9d23-b8506d
我正在尝试制作一个 GUI (javaFX),并尝试读取 .JSON 文件,然后将其反序列化为对象。尽管我不断收到相同的错误:MismatchedInputException。我没有制作 Spring
我在 RestController 中定义了一个 API,它接受 json 请求。输入的 pojo 如下。 class A{ class List sharedModels; } SharedMode
使用 spring 配置将数据从 json 读取到 spring bean 中,它适用于简单类型,但在尝试读取数组时出现上述错误这是我的配置 @Bean Container container() t
我正在使用 Jackson ObjectMapper像这样的类: objectMapper.treeToValue(jsonNode, MyClass.class) 其中 jsonNode 是 Jso
我在 Spring Boot 应用程序中使用com.fasterxml.jackson.databind。当我向端点发送请求时,我收到以下异常: com.fasterxml.jackson.datab
我有多个 DTO 对象,它们都如下所示: @Getter @RequiredArgsConstructor public class SomeDTO { private final String
我尝试在LinkedHashMap测试用例中将JSON映射为kotlin。当我使用json将object转换为jackson-objectmapper时,出现以下问题,请帮我解决这个问题。 const
我正在尝试使用fasterxml将json回复解析为POJO。但问题是 json 回复包含嵌套对象,其中包含反斜杠,因此在通过 ObjectMapper 读取此值时,我收到 com.fasterxml
我在请求正文中发布带有转义字符的 json 字符串,并将其映射到 Controller 中的模型,但它抛出以下异常 json string : "{\"id\":\"1\",\"desc\":\"te
谁能帮我找出我在这里做错了什么。我必须解析下面的 XML 字符串 true A01222262 Bob NEWYORK_ADDRESS
我有一个简单的类 public class AuthenticationToken { public String token; public AuthenticationToken(
具有以下json片段: "Location": { "Address": "" }, 还有我的Pojo public class Address implements Serializable
我试图读取的yaml格式如下 - name: storage scm: git src: git+https://bitbucket.org/cer/linux_storage_jenkins
我在尝试通过 Swagger 发布请求时收到以下错误。当我通过 Postman 执行此操作时,效果很好。 我正在使用 springBootVersion = '2.1.0.RELEASE',swagg
我正在尝试发布用户组: public UserGroup createUserGroup(UserGroup userGroup) { ResponseEntity userGroupResp
我正在尝试运行以下 Junit 测试: @Test public void testObjectMapper() throws IOException { String json =
我有 2 个通过 REST 调用进行通信的微服务。我有一个名为 Consumer 的实体,它具有各种字段,包括 LocalDate。当我通过 REST 调用传递该实体时,出现以下异常 Json par
我是一名优秀的程序员,十分优秀!