我将使用Jackson来反序列化一个JSON,这个JSON可能包含Map变量的null值。我的要求是,如果该值为null,则希望该Map变量成为空的HashMap而不是null。
JSON:
{"names":null, "descriptions":null, "nicknames":null...}
Java类:
private User {
private Map<String,String> names = new HashMap<>();
private Map<String,String> descriptions = new HashMap<>();
private Map<String,String> nicknames = new HashMap<>();
}
现在当ObjectMapper
反序列化JSON时,它会覆盖字段,并将 names
、descriptions
和 nicknames
设置为 null。
是否有一种通用的方法,使我不必每次添加新的映射属性时都要添加代码?
this.names = (names == null) ? new HashMap<>() : names;
- 或者如果您有Guava,则使用Objects.firstNonNull()
。 - Matt Ball