我正在将我的Java Web应用程序从基于servlet的Jrac-RS迁移到JAX-RS . 因为我正在使用Jboss,所以我也会使用(默认情况下)RESTEasy .
在我的servlet中,我使用Jackson来序列化/反序列化JSON; Jackson 允许我以编程方式过滤字段的包含/排除,例如:
ObjectMapper mapper = new ObjectMapper().setVisibility(JsonMethod.FIELD,
Visibility.ANY);
String[] ignorableFieldNames = { "id", "name" };
FilterProvider filters = new SimpleFilterProvider().
addFilter("f123",SimpleBeanPropertyFilter.serializeAllExcept(ignorableFieldNames));
mapper.filteredWriter(filters).writeValueAsString(object);
RESTEasy提供了Jackson的支持,但它似乎是透明地嵌入到开发人员中,因此我无法进入低级别来包含/排除字段 . 这可行吗?
1 回答
您可以使用Jackson annotations以声明方式配置几乎所有内容 . 在你的情况下,
@JsonIgnore
就足够了 .如果您不想一直忽略这些字段,可以使用JSON views .
如果你可以't modify the code of the class in question (say, because it'在第三方库中)mix-ins have you covered.
如果您仍然发现需要访问
ObjectMapper
:Accessing Jackson Object Mapper in RestEasy .另见:http://wiki.fasterxml.com/JacksonAnnotations