JSON-провайдер Джексон сталкивается с сериализацией и десериализацией с логическим типом - PullRequest
3 голосов
/ 11 мая 2011

У меня проблема с использованием булевой оболочки с JSON Object, когда объект JSON создается для булевых значений, например, он содержит строковые кавычки "isUrgent" : "1" Теперь проблема заключается в том, что мне приходится каждый раз оборачивать его вручную в своем коде для каждого запроса /ответ

Может ли какой-либо орган предоставить мне постоянное решение для вышеуказанной проблемы?

Ответы [ 2 ]

3 голосов
/ 12 мая 2011

Решение состоит в том, чтобы настроить десериализатор для логического типа. Все, что вам нужно сделать, это добавить дополнительный десериализатор, который может обрабатывать регистр определенных значений String, которые вы хотите десериализовать как логические значения.

Следующий пост в блоге объясняет это подробно.

http://hussainpithawala.wordpress.com/2011/05/11/overriding-default-serializationdeserialization-behaviour-of-jackson-json-serializer/

2 голосов
/ 14 мая 2011

Для чего бы то ни было, булев тип может быть преобразован из альтернативных токенов JSON (а не просто нативного true или false);так что

  • null становится ложным
  • пустая строка ("") становится ложным
  • строки "true" и "false" принимаются как совпадающие логические значения
  • целое число 0 становится ложным;другие целые числа true

но в этом случае у вас есть комбинация вещей, которая не поддерживается.

...