杰克逊根据接口序列化



我有Jackson JSON作为我的REST API的序列化程序。对于订单实体,我有getAll和getById方法。对于getById API返回包含所有属性的整个Order对象,但对于getAll方法,我希望只返回OrderForList接口中定义的一些属性(Order实现OrderForList(。

@RequestMapping(method = RequestMethod.GET)
public Set<OrderForList> getAll() {
    Set<OrderForList> orders = orderService.get(); //get() returns Set<Order>
    return orders;
}

我该怎么做?

我已经尝试

用注释方法
@JsonSerialize(typing = JsonSerialize.Typing.STATIC, contentAs = OrderForList.class)

没有任何效果。我可以编写自定义序列化程序/映射器,但我正在寻找更好的解决方案。我在属性对象上使用此解决方案(例如,订单的供应商,我只返回供应商的 ID 和名称(并且它可以工作,我在这里做错了什么?

提前感谢您的任何想法。

你检查过视图注释吗?它可能会对你有所帮助

最新更新