Я знаю, что по этой теме уже есть пара вопросов, но мне все еще трудно найти хорошее решение для примитивных типов. Я пытаюсь сериализовать и десериализовать следующие данные 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
Решил вот так.