Задать вопрос
nuclear_kote
@nuclear_kote

Как запретить десериализацию поля в jackson?

@Data
public class TestObject {

    private String name;
    @JsonRawValue
    private String result;

}

@RestController
@RequestMapping("test")
public class TestController {

    @GetMapping
    public String get() {
        return "{" +
                "\"name\": \"vasya\"," +
                "\"result\": {\"bla\": \"bla\"}" +
                "}";
    }
}


    public static void main(String[] args) {
        RestTemplate template = new RestTemplate();
        ResponseEntity<TestObject> exchange = template.exchange("http://localhost:8080/test", HttpMethod.GET, null, TestObject.class);

        System.out.println(exchange.getBody());
    }
}


нужно , чтобы в поле result попадал json как строка. Менять ответ контроллера (например обернуть в кавычки) я не могу. нужно это потому что там могут передаваться разные типы данных, а не только json.

а щас вылетает
Exception in thread "main" org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not deserialize instance of java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
  • Вопрос задан
  • 298 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя Dmitry Roo К ответам на вопрос (3)
xez
@xez Куратор тега Java
TL Junior Roo
Несовсем понятно, что вам нужно...
@JsonIgnore может быть поможет?...
Ответ написан