Я пытаюсь сопоставить файл json с объектом json, но получаю сообщение об ошибке, так как не могу десериализовать строку из токена start_object.
Это мой json файл
{
"serial_key": 2,
"serial_identity" : "20200580011000",
"serial_type" : "I",
"serial_source" : "NASA"
"serial_detail" : {
"serialID": "20200580011000",
"patient": {
"name": {
"fullName": "John Mathew",
"lastName": "John",
"firstName": "Mathew"
},
"gender": "Female",
"century": "0",
"dateOfBirth": 252460800000,
"admissionStatus": "active"
}
}
}
Ниже мой класс сопоставления
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SerialDto {
@JsonProperty("serial_key")
private Long serialKey;
@JsonProperty("serial_identity")
private String serialIdentity;
@JsonProperty("serial_type")
private String serialType;
@JsonProperty("serial_source")
private String serialSource;
@JsonProperty("serial_detail")
private String serialDetail;
}
Ниже приведен код для его сопоставления
String json;
ObjectMapper mapper = new ObjectMapper();
try {
json = FileUtils.readFileToString(new File("src/main/resources/test.json"), StandardCharsets.UTF_8);
SerialDto dto = mapper.readValue(json, SerialDto.class);
System.out.println(dto.getSerialIdentity());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Исключение, которое я получаю:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
(through reference chain: com.app.entity.SerialDto["serial_detail"])
Может ли кто-нибудь помочь привязать serial_detail к строке serialDetail, где нужно изменить формат json, чтобы получить serial_detail как строку json?