【发布时间】:2021-03-27 12:10:36
【问题描述】:
作为示例类:
@Getter @Setter
public static class SomeClass {
private String notNull;
private String nullSetEmpty;
private String notExists;
}
可以通过覆盖配置将null 值反序列化为空,例如:
String json = " {\"notNull\": \"a value\", \"nullSetEmpty\": null}";
ObjectMapper om = new ObjectMapper();
om.configOverride(String.class)
.setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY));
SomeClass sc = om.readValue(json, SomeClass.class);
System.out.print(om.writerWithDefaultPrettyPrinter().writeValueAsString(sc));
这会产生:
{
"notNull" : "a value",
"nullSetEmpty" : "",
"notExists" : null
}
但是这个notExists怎么样。可以为每个有问题的类添加默认值,但有没有像configOverride 这样的通用方法让杰克逊处理?
【问题讨论】:
标签: java json jackson deserialization jackson2