можно ли в jackson десериализовать 2 типа в зависимости от успешности ответа сервера? у меня при запросе может вернуться json с ошибкой, хочу описание из нее получить
Не разбираюсь в jackson, но думаю, что если стандартным типом не десериализовалось, то можно в этом случае использовать второй. То есть, пишете для этого условие или ловите эксепшен, если вдруг он его кидает при неудачной десериализации.
Ну вот, смотрите. Обычно делается запрос. Получаем в методе ответ и в зависимости от него пишем условие. Если успешный и десериализовался первым типом, то делаете свои дела. Если ошибка, то делаете повторную десериализацию уже вторым типом(если я вас верно понял) и далее ваши дальнейшие действия при ошибке.
да, но тогда в том месте где я вызвал этот метод и принимаю результат(или объект успешного ответа или объект ошибки) я не могу знать что мне вернет, поэтому я верну общий тип, который является интерфейсом и который реализуют мои два класса с типами ответа, а далее when(response) { is Success -> ... else -> ... }
Опять же, с таким я не сталкивался и может вам тут кто-то более знающий подскажет, но я думал, что везде принцип отправки/получения запросов одинаковый. С ретрофитом, например, я делаю как на скрине