Как легко сериализовать и десериализовать карты с нулевыми ключами с помощью ДжексонаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как легко сериализовать и десериализовать карты с нулевыми ключами с помощью Джексона

Сообщение Anonymous »

Я использую Spring Boot с автоматически настроенным objectMapper.
Предположим, мне нужно сериализовать и десериализовать различные HashMaps, ключи которых могут быть нулевыми. AFAIK это не поддерживается по умолчанию. Итак, как это сделать наиболее кратко?
Важно то, что objectMapper должен продолжать работать так же, как и для любого другого типа.
Что я уже пробовал:< /p>
  • Для сериализации я добавил собственный NullKeySerializer, который записывает «нулевую» строку в случае, если ключ карты равен нулю (см. ниже). Может ли это нарушить другие типы Java (не карты) во время сериализации? Кроме того, может быть, где-нибудь существует встроенный сериализатор? (Я нашел только com.fasterxml.jackson.datatype.jsr310.ser.key.Jsr310NullKeySerializer, но он помечен как устаревший).

Код: Выделить всё

objectMapper.getSerializerProvider().setNullKeySerializer(new JsonSerializer() {
@Override
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeFieldName("null");
}
});
  • Для десериализации единственное, что я нашел, это зарегистрировать модуль с помощью специального десериализатора.
    Похоже в этом случае вам нужно указать тип возвращаемого значения, поэтому я не уверен, как это сделать в случае универсальных карт (это может быть Map или Map — в любом случае «null "строка должна быть преобразована в "настоящий" ноль). Опять же, может быть, для этого существует существующий десериализатор?
Обратите внимание, что мне нужно использовать автоматически настроенный преобразователь объектов из Spring Boot и при необходимости настроить его, поэтому Я был бы признателен за отсутствие ответов с помощью new ObjectMapper() или чего-то подобного. Кроме того, я не могу использовать аннотации типа @JsonSerialize в определенных полях, всю настройку необходимо выполнить только в одном месте.

Подробнее здесь: https://stackoverflow.com/questions/784 ... th-jackson
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сериализовать поле карты как атрибуты xml с помощью картографа Джексона
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Десериализация Джексона: считать определенные строковые значения нулевыми.
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Десериализовать JSON с помощью Джексона
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Десериализовать JSON с помощью Джексона
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Десериализовать список объектов из XML в Java POJO с помощью Джексона
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»