Jackson的@ JsonView,@ JsonFilter和Spring


问题内容

可以同时使用Spring 和的注释,使用Jackson @JsonView@JsonFilter注释来修改Spring MVC控制器返回的JSON
吗?MappingJacksonHttpMessageConverter``@ResponseBody``@RequestBody

public class Product
{
    private Integer id;
    private Set<ProductDescription> descriptions;
    private BigDecimal price;
    ...
}


public class ProductDescription
{
    private Integer id;
    private Language language;
    private String name;
    private String summary;
    private String lifeStory;
    ...
}

当客户端请求的集合时Products,我想返回每个的最小版本ProductDescription,也许只是它的ID。然后,在随后的呼叫中,客户端可以使用该ID来请求ProductDescription具有所有属性的完整实例。

能够在Spring MVC控制器方法上指定它是理想的,因为所调用的方法定义了客户端请求数据的上下文。


问题答案:

这个问题解决了!
跟随这个

添加对Jackson序列化视图的支持

Spring
MVC现在支持Jackon的序列化视图,用于通过不同的控制器方法呈现同一POJO的不同子集(例如,详细页面与摘要视图)。问题:SPR-7156

这就是SPR-7156

状态:已解决

描述

Jackson的JSONView批注允许开发人员控制对方法的哪些方面进行序列化。在当前的实现中,必须使用Jackson视图编写器,但是内容类型不可用。如果可以将JSONView指定为RequestBody批注的一部分,那会更好。

Spring ver> = 4.1上可用

更新

点击此链接。举例说明@JsonView注释。