I use MrBeanModule and Jdk8Module. I have simple interface
public interface Point {
Optional<Integer> getId();
}
Deserialization with value and null works fine, but I have a case when field id
may be absent. Example:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new MrBeanModule());
mapper.registerModule(new Jdk8Module());
String json = "{"id":35}";
Point p = mapper.readValue(json, Point.class);
System.out.println(p.getId());
json = "{"id":null}";
p = mapper.readValue(json, Point.class);
System.out.println(p.getId());
json = "{}";
p = mapper.readValue(json, Point.class);
System.out.println(p.getId());
It produces the following output:
Optional[35]
Optional.empty
null
Is there solution to get Optional.empty for the last case without interface implementation and use default value?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…