Я знаю, что по этой теме уже есть пара вопросов, но мне все еще трудно найти хорошее решение для примитивных типов. Я пытаюсь сериализовать и десериализовать следующие данные JSON:
{ «key»: «key1» «value»: «value1» }
Однако значение является типом объединения и может быть логическим, числом или строкой. Так что это также допустимые входные данные:
{ «key»: «key2» «value»: true }
и
{ «key»: «key3» «value»: 3 }
Как лучше всего сериализовать и десериализовать это в Java POJO? Мой подход выглядит так (но, очевидно, работает только со строковыми значениями)
@RequiredArgsConstructor @Getter @EqualsAndHashCode public class Request { private final String key; private final String value; } @RequiredArgsConstructor @Getter @EqualsAndHashCode public class Response { private final String key; @JsonInclude(JsonInclude.Include.NON_NULL) private final String value; }
Вам нужен DTO, чтобы получить преобразованный объект. Очевидно, String value не может содержать логическое значение. Поэтому сначала вы должны показать нам свой DTO. Может хочешь использовать Object value? — person Fynn schedule 19.08.2020
Где / как мне сохранить информацию о типе во время де (сериализации)? Я как-то неправильно настраиваю аннотации @JsonTypeInfo — person Fynn schedule 19.08.2020
Источник: