我有一套复杂的杂烩。
每当我使用@JsonUnwrapped注释时,即使所有子值都为null,反序列化bean仍然会被创建。我确实将我的对象映射器设置为不包括空字段。
protected static ObjectMapper writer = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY).
disable(SerializationFeature.WRITE_NULL_MAP_VALUES).disable(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS);这允许我跳过空字符串或空元素,但不能跳过空的pojos (具体来说,用@JsonUnwrapped注释的所有pojos都序列化为{} )。我的反序列化器确实在@JsonUnwrapped中使用Mixin注释,但我的作者不使用。
所以我最终有很多空的结构:
details: {
hoaFee: { },
parking: { },
pets: { },
utilities: {
landlordpays: { }
}
}我如何遍历@JsonUnwrapped使用的反序列化器,从而不创建空pojo对象,或者如何不序列化空pojo?
发布于 2015-07-31 00:22:23
JsonNode jsonNode = mapper.valueToTree(pojo);
Iterator<JsonNode> itr = jsonNode.iterator();
while (itr.hasNext()) {
JsonNode personNode = itr.next();
if (personNode instanceof ObjectNode) {
if (personNode.size() == 0) {
itr.remove();
}
}
}
System.out.println(jsonNode.toString());这样做可以删除空的POJO。
https://stackoverflow.com/questions/31735669
复制相似问题