如何避免hashmap中的序列化序列化?
-
01-10-2019 - |
题
我想通过Jackson JSON处理器序列化哈希图作为字符串。例如:
String strMap = getMapper().writeValueAsString(myHashMap);
result output -> {"r_id":6,"a_am":null,"smb":"Submit","a_li":null,"l_id":878,"pos":[1345,1346,1347]}
我不知道如何禁用MAP序列化的零值。如果像这样配置杰克逊,它仅适用于Pojo:
mapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL);
解决方案
就其价值而言,杰克逊1.6将拥有这样的:
objectMapper.configure(SerializationConfig.WRITE_NULL_MAP_VALUES, false);
做你想要的。现有方法仅适用于豆类,并且不会更改以确保最大的向后兼容性。
编辑:根据评论的注释,这是针对杰克逊1.x的;杰克逊2.x有匹配 SerializationFeature
其他提示
这是忽略空字段的最新注释
@jsonserialize(包括= jsonserialize.inclusion.non_null)
使用杰克逊2.1.2我发现我可以用@JsonInclude(Include.NON_NULL)
因此,零是根本没有序列化的。
或者,您可以用@jsonwritenullproperties(false)注释bean,这将
借助最新的杰克逊版本,在ObjectMapper上,您可以执行:
mapper.setSerializationInclusion(jsoninclude.include.non_null);
不隶属于 StackOverflow