我有Jackson JSON作为REST API的序列化器。对于Order实体,我具有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和名称)上使用此解决方案,并且该方法有效,我在这里做错了什么?

预先感谢您的任何想法。

最佳答案

您检查view annotation了吗?可能对你有帮助

关于java - Jackson根据接口(interface)进行序列化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48626557/

10-08 23:20