У меня есть вложенное json pojo, где вложенная часть json помечена @JsonRawValue
.Я пытаюсь сопоставить его с шаблоном rest, но получаю сообщение об ошибке разбора JSON: Cannot deserialize instance of java.lang.String out of START_OBJECT token;
Вложенное исключение: com.fasterxml.jackson.databind.exc.MismatchedInputException
.
. Так выглядит мой объект ответа.например:
import com.fasterxml.jackson.annotation.JsonRawValue;
public class ResponseDTO {
private String Id;
private String text;
@JsonRawValue
private String explanation;
//getters and setters;
}
, где explanation
- это json, сопоставленный со строкой.Это прекрасно работает с почтальоном, чванством, и я вижу объяснение как json в ответе.
Но когда я тестирую его, используя Rest Template:
ResponseEntity<ResponseDTO> resonseEntity = restTemplate.exchange(URI, HttpMethod.POST, requestEntity, ResponseDTO.class);
Я вижу это исключение:
org.springframework.web.client.RestClientException: Error while extracting
response for type [class com.**.ResponseDTO] and content type
[application/json;charset=utf-8]; nested exception is
org.springframework.http.converter.HttpMessageNotReadableException: JSON
parse error: Cannot deserialize instance of java.lang.String out of
START_OBJECT token; nested exception is
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot
deserialize instance of java.lang.String out of START_OBJECT token
at [Source: (PushbackInputStream); line: 1, column: 604] (through
reference chain: com.****.ResponseDTO["explanation"])