Я пытался использовать Jackson для записи значения класса в JSON, у которого есть необязательные как поля:
public class Test {
Optional<String> field = Optional.of("hello, world!");
public Optional<String> getField() {
return field;
}
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(new Test()));
}
}
При выполнении этот класс генерирует следующий вывод:
{"field":{"present":true}}
Я понимаю, что настоящее/не существующее поле включено и может работать вокруг него при чтении данных JSON, однако я не могу обойти тот факт, что фактическое содержимое необязательного никогда не записывается на выход.: (
Какие-либо обходные пути здесь, если не использовать ObjectMapper?