У меня есть собственность
@JsonProperty
private Map<String, String> parameters = new HashMap<String, String>();
Когда я пытаюсь выполнить десериализацию, вызывая objectMapper.readValue (...), все работает нормально, пока поле параметров в JSON не станет пустым, т.е.
"parameters":[]
Я получаю это исключение ...
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.HashMap out of START_ARRAY token
Как мне обрабатывать пустой список? И нет, у меня нет никакого контроля над входящим JSON.
Спасибо.
2 ответа
Вы можете получить только HashMap
из {}
, но не []
(хотя вы сможете получить из него ArrayList
).
Как упоминал Крис, ваш JSON неверен.
Но если вам действительно нужно поддерживать это, вы можете (и должны) создать настраиваемый десериализатор и зарегистрировать его для объявленного типа карты - настраиваемый десериализатор может затем принимать массивы (по крайней мере, пустые, если это только типы, которые могут быть столкнулся).
Похожие вопросы
Новые вопросы
json
JSON (объектная нотация JavaScript) - это сериализуемый формат обмена данными, предназначенный для машинного и человеческого чтения. Не используйте этот тег для собственных объектов JavaScript или литералов объектов JavaScript. Прежде чем задать вопрос, проверьте свой JSON с помощью валидатора JSON, такого как JSONLint (https://jsonlint.com).