我过去使用过Spring MVC,jackson和hibernate,我没有必要建立一个休息后端而且我正在考虑坚持使用相同的技术。
过去我无法做的两件事就是切断了杰克逊序列化对象的深度。例如,假设我有两个类:public class Person{
public int id;
public String name;
List<Role> roles;
}
public class Role{
public int id;
public String roleName;
}
所以我想用jackson和spring mvc动态决定何时序列化Person是否给出带有完整序列化对象的角色列表,或者只是对象id,例如:
{id:1, name:"jhon", roles:[{id:1, roleName:"admin"},{id:2, roleName:"user"}]}
OR动态选择仅给出角色的ID而不是完整对象
{id:1, name:"jhon", roles:[{id:1},{id:2}]}
有没有办法用杰克逊过滤器和Spring mvc来实现这一目标?我做了一些研究,但我不知道该去哪,你能指点我正确的方向吗? :)
谢谢!
答案 0 :(得分:0)
你可以使用我写的名为Squiggly Filter。
此库允许您根据查询字符串参数动态过滤属性。
在您的情况下,您可以通过在查询字符串上执行以下操作来仅选择角色的ID:
/people/1?fields=**,roles{id}