首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jackson:忽略@JsonIgnoreProperties注释

Jackson:忽略@JsonIgnoreProperties注释
EN

Stack Overflow用户
提问于 2015-02-20 03:36:24
回答 2查看 974关注 0票数 2

我有一个序列化的类,并且我在类级别使用@JsonIgnoreProperties来排除其中的一些字段。

最近,我有一个需要序列化这些字段的用例。

有没有办法让写入者/阅读者忽略注释?

我一直在研究@JsonView,但似乎@JsonIgnoreProperties优先于它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-20 18:36:15

我已经想出了一个解决方案,不知道它是不是最好的,但完成了工作……

我最终使用了@JsonView。

所以我有两个这样的视图:

代码语言:javascript
复制
public class Views {
    public  static class Public { }
    public  static class Extended extends Public { }
}

默认的Spring映射器配置为

代码语言:javascript
复制
  mapper.setConfig(mapper.getSerializationConfig().withView(Views.Public.class));
  mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);

这个类看起来就像

代码语言:javascript
复制
 public class Foo{
        String name;
        @JsonView(Views.Extended.class)
        String title;
...}

通过在对象映射器上设置默认视图,它会导致它忽略所有其他未指定的视图。根据配置,不带注释的字段将始终被序列化。

然后,当我需要序列化整个类时,我使用:

代码语言:javascript
复制
objectMapper.writer().withView(Views.Extended.class).writeValueAsString(value);
票数 0
EN

Stack Overflow用户

发布于 2015-02-20 04:21:18

在这种情况下,@JsonFilter可以帮助你。

通过定义自定义json过滤器,Jackson将动态解析给定类使用的过滤器,允许每个调用重新配置过滤。

您可以找到详细的解释和用法示例here

一些有用的关于动态忽略的信息,你会发现here

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

https://stackoverflow.com/questions/28615351

复制
相关文章

相似问题

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