Получение списка неизвестных ключей json

Коллеги! Есть задача: На вход API подается объект String (json). В этом json могут быть ключи,поля,которые принадлежат данному объекту ,но могут быть и невалидные поля. Пример:

{
"name": "name#1",
"address": "address#1",
"pone": "000000000",
"ail": "[email protected]",
"additional"{
"wrong": 324
 }
}

где поля 'ail','pone' - не существуют в главном объекте,'additional.wrong'-ошибочен по типу данных. Данных ключей с таким типом/неймом нет в объектах (в главном/вложенном). Необходимо собрать все эти невалидные поля в список при десериализации с помощью ObjectMapper (jackson) с условием,что стоит флаг TRUE на FAIL_ON_UNKNOWN_PROPERTIES.

Было найдено рабочее решение,которое подразумевает в каждом объекте (даже во вложенных) добавление допом мапы(get + set), использование аннотаций @JsonAnyGetter & @JsonAnySetter и флаг FAIL_ON_UNKNOWN_PROPERTIES= false. Но каждый раз поднимать у каждого объекта эту мапу и проверять на размерность + формировать информацию (при условии,что сам вложенный объект !=null) - слишком трудоемко, учитывая ,что дается большой главный объект со множеством вложенных объектов.

Есть ли возможность как-то настроить mapper или правильно переопределить метод deserialize? Кто-нибудь сталкивался с подобным?

Спасибо!


Ответы (0 шт):