#java #json #spring-boot #serialization #jackson
#java #json #весенняя загрузка #сериализация #джексон
Вопрос:
У меня возникли некоторые проблемы с Джексоном, пытающимся сериализовать null instant objects. В моей модели db у меня есть несколько временных меток, которые являются нулевыми, и я хочу иметь возможность отправлять их таким образом клиенту.
Дело в том, что когда я генерирую ответ, я всегда вижу эти ошибки:
Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: (was java.lang.NullPointerException); nested exception is com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain:...
При отладке y показать, что поле является мгновенным. Это проблемный способ получения…
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public Instant getStartTime() {
return startTime.toInstant();
}
Я пытался использовать аннотацию @JsonInclude для поля, средства получения и всего класса, но я все еще получаю это сообщение и 500 на клиенте.
Я использую Spring-boot, который включает jackson 2.11.0.
Большое спасибо
Ответ №1:
Вам нужно проверить, что переменная startTime
не null
первая:
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public Instant getStartTime() {
return startTime != null ? startTime.toInstant() : null;
}
Jackson
вызывает getter и проверяет, является ли значение null
или нет. Но NullPointerException
выдается при getter
вызове.
Комментарии:
1. Мне нужно больше спать: facepalm: Большое спасибо!
2. @Acampoh, никаких проблем. Иногда мы не видим леса за деревьями. Комментарии к
SO
поддерживает символы unicode: 🤦. 🤝