我想通过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);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top