JsonMappingException НЕ выдается, когда это должно - PullRequest
3 голосов
/ 08 февраля 2012

У меня есть класс в Java, который типизирован. Предполагается вернуть объект типа T после получения некоторого json. Я использую следующий код для создания объекта:

ObjectMapper mapper = new ObjectMapper();
this.object = mapper.readValue(json, type);

Этот метод выдает JsonMappingException, и должен делать это, если объект не соответствующего типа. Проблема, с которой я сталкиваюсь (при модульном тестировании) заключается в том, что если я передаю json неверного типа, пока оба объекта являются pojos, исключение не выдается. Я просто возвращаю объект правильного типа, где все его поля равны нулю.

Почему исключение здесь не выдается? Если я передаю json с несколькими полями, которые не существуют в типе объекта, к которому он должен быть привязан, разве я не получу исключение из этого?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Возможно, у вас где-то установлено:

@JsonIgnoreProperties(ignoreUnknown = true)

, поэтому Джексон не будет жаловаться на несоответствие.

0 голосов
/ 09 февраля 2012

Как вы ожидаете, что Джексон узнает, что JSON не представляет ожидаемый тип? Данные JSON не имеют типа, кроме базовой структуры Object / Array / scalars. Так что, пока структура совместима, все работает, и это по замыслу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...