Spring & Jackson:排除所有属性,但指定要包含的某些属性

Spring & Jackson: Exclude all properties, but specify certain ones to include

我有以下Spring控制器声明

@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...等。默认情况下,Jackson 包括对象的所有属性,但我有一些敏感信息,我只想从安全 urls 中公开这些信息。这个 url 是 public,我只想公开一些属性。

您可以在 Spring MVC 中使用 Jackson @JsonView 支持。 请注意,Spring MVC 支持选择设置 MapperFeature.DEFAULT_VIEW_INCLUSION,因此只有 @JsonView 个注释属性被序列化。

参见this blog post on Jackson support in Spring MVC