【问题标题】:Possible to customize FilterProvider at Runtime?可以在运行时自定义 FilterProvider 吗?
【发布时间】:2014-02-21 16:12:28
【问题描述】:

我想问一下是否可以在运行时在 Json 中自定义序列化过滤器?

我的来源看起来像:

FilterProvider filters = new SimpleFilterProvider()
            .addFilter("XXX",SimpleBeanPropertyFilter.serializeAllExcept(JsonFilterSerializer.getInstance().getMyView()));
            String json= mapper.writer(filters).withDefaultPrettyPrinter().writeValueAsString(obj);

我需要的解决方案是这样的:

            FilterProvider filters = new SimpleFilterProvider();
if(x==true)
            filters.addFilter("XXX",SimpleBeanPropertyFilter.serializeAllExcept(JsonFilterSerializer.getInstance().getXXXView()));
            if(y==true)
            filters.addFilter("YYY",SimpleBeanPropertyFilter.serializeAllExcept(JsonFilterSerializer.getInstance().getYYYView()));
            if(z==true)
            filters.addFilter("ZZZ",SimpleBeanPropertyFilter.serializeAllExcept(JsonFilterSerializer.getInstance().getZZZView()));

        String json= mapper.writer(filters).withDefaultPrettyPrinter().writeValueAsString(obj);

问题是我喜欢通过 If 将过滤器视图添加到我的映射器中。否则我必须在每种情况下添加它们,将我认为非常迂回的部分分开。

【问题讨论】:

    标签: json serialization view filter runtime


    【解决方案1】:

    解决办法:(有点乱)

    String[] xxx= JsonFilterSerializer.getInstance().getxxxView();
    FilterProvider filters = new SimpleFilterProvider()
                    .addFilter("xxxx",SimpleBeanPropertyFilter.serializeAllExcept(xxx))
    

    这可以包装在 if 案例中以解决问题,就像我一样。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      相关资源
      最近更新 更多