我有getter方法
@JsonInclude(Include.NON_NULL)
public Date getVerifiedFrom() {
if(invoices == null || invoices.isEmpty()) {
return null;
}
return invoices.stream().filter(i->i.getVerifiedDate() != null).map(Invoice::getVerifiedDate).min(Date::compareTo).get();
}
我尝试了很少的链接,但这些没有帮助,
http://www.java2novice.com/java-json/jackson/ignore-json-null-elements/
How to deserialize Jackson Json NULL String to Date with JsonFormat
How to tell Jackson to ignore a field during serialization if its value is null?
错误:
由Handler执行引起的已解决异常:org.springframework.http.converter.HttpMessageNotWritableException:无法写入JSON:没有值存在;嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:没有值存在(通过引用链:java.util.ArrayList [0] - > com.enkindle.service.resource.TradeDebtResource [" VerifiedFrom" ])
答案 0 :(得分:1)
您获得的异常是由于流为空,这导致min
返回一个空的可选项,当您调用get
时会抛出异常。
你没有获得原始NPE的原因是杰克逊可能只提取信息。
您应该将get()
替换为orElse(null)
。
还有一个处理Optional
的杰克逊模块。