【发布时间】: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