java—是否可以将json中缺少的值反序列化为某些默认值?

lvmkulzt  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(554)

作为示例类:

@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 那Jackson能处理吗?

kmbjn2e3

kmbjn2e31#

您可以在数据类中定义默认值

@Getter
    @Setter
    public static class SomeClass {
        private String notNull;
        private String nullSetEmpty;
        private String notExists = "default-value";
    }

相关问题