春天&杰克逊:排除所有属性,但指定要包含的属性

时间:2015-03-13 15:12:12

标签: spring-mvc jackson

我有以下弹簧控制器声明

@RequestMapping(value = "/pub/searchparm", method = RequestMethod.GET, produces = {"application/json", "application/xml" })
    public SearchResult search(HttpServletRequest request) {

public class SearchResult {

   private int size;

   private Collection<result> results;

...

}

我需要让Jackson默认忽略Collection中对象的所有属性,默认情况下只适用于此控制器方法。

我查看了@JsonView,@ JsonFilter ......等.Jacks默认包含了该对象的所有属性,但我有敏感信息,我只想从安全网址中公开。这个网址是公开的,我只想要暴露一些属性。

1 个答案:

答案 0 :(得分:1)

您可以在Spring MVC中使用Jackson @JsonView支持。 请注意,Spring MVC支持选择设置MapperFeature.DEFAULT_VIEW_INCLUSION,以便仅序列化@JsonView带注释的属性。

请参阅this blog post on Jackson support in Spring MVC