java - 可以在每次调用的基础上设置属性 @JSONIGnore 吗?

标签 java json jackson

我在一个网站上工作,该网站使用促销代码潜在地为用户提供该网站的免费成员(member)资格。成员(member)注册的级别是促销代码对象的属性,并作为 1 或 2 的 int 存储在数据库中。但是,成员(member)级别属性与网站 UI 相关的唯一时间是与特定促销代码关联的着陆页。所以对于那种情况,我不希望成员级别被 JSON 忽略。在用户返回网站并拥有与其帐户关联的促销代码对象后,我们不再关心他们的成员(member)级别,因此我希望 JSON 忽略成员(member)级别属性。

所以我的问题是,是否可以在每次访问的基础上将对象的属性设置为 @JSONIgnore,或者只能忽略或不忽略属性?换句话说,是否有像 object.getAttribute().setAttributeJSONIgnore(true | false) 这样的方法?

最佳答案

没有。基于注释的方法是静态的,因为虽然您可以使用自定义 AnnotationIntrospector,但生成的 JsonSerializer 实例会被重用,因为它们的构建成本很高。

但是有一些方法可以过滤掉属性,例如查看“Filtering Properties”文章。

关于java - 可以在每次调用的基础上设置属性 @JSONIGnore 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11438972/

相关文章:

java - Jackson是否支持JsonPath注解

java - 为什么switch on String会编译成两个switch

java - RxJava 过滤器运算符

java - okHttpClient 响应给出垃圾值

javascript - 在 View 中迭代 JSON

java - 是否可以使用非默认构造函数的 Jackson 自定义解串器?

java - 在 Mac OS X Lion 中使用 JPA 进行 Java 打印

Json 架构 - 不需要则不起作用

javascript - 解析嵌套的 JSON 响应 Javascript

java - 从 JSON 响应中删除键