Джексон: пользовательский десериализатор JSON - PullRequest
2 голосов
/ 14 сентября 2010

Я использую ObjectMapper библиотеки Джексона для десериализации JSON в объекты Java. Я использую Spring "проводку". Я создал специальные десериализаторы для преобразования строки JSON в POJO. Однако, когда ввод неправильный (например, число передается как «124A» - недопустимый символ), вызывается десериализатор по умолчанию и бомбардируется с помощью NumberFormatException. Есть ли способ предотвратить вызов конвертеров по умолчанию?

1 Ответ

2 голосов
/ 15 сентября 2010

Хорошо, учитывая, что ввод недопустим в формате JSON (числа не могут начинаться с или содержать '$'), десериализатор вызываться не будет, и любое изменение должно будет применяться к анализатору.В Джексоне нет переключателей, позволяющих считать такой контент числами.

Если вы можете контролировать ввод, просто измените значение на строку (добавьте двойные кавычки вокруг значения).Затем Parser передает его как JSON String, и компоненты привязки данных получают возможность обработать его (JsonDeserializer).

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