首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jackson @Jackson打开创建空bean

Jackson @Jackson打开创建空bean
EN

Stack Overflow用户
提问于 2015-07-30 23:19:38
回答 1查看 1.4K关注 0票数 2

我有一套复杂的杂烩。

每当我使用@JsonUnwrapped注释时,即使所有子值都为null,反序列化bean仍然会被创建。我确实将我的对象映射器设置为不包括空字段。

代码语言:javascript
复制
 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注释,但我的作者不使用。

所以我最终有很多空的结构:

代码语言:javascript
复制
details: {
    hoaFee: { },
    parking: { },
    pets: { },
    utilities: {
        landlordpays: { }
    }
}

我如何遍历@JsonUnwrapped使用的反序列化器,从而不创建空pojo对象,或者如何不序列化空pojo?

EN

回答 1

Stack Overflow用户

发布于 2015-07-31 00:22:23

代码语言:javascript
复制
    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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31735669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档