【发布时间】:2014-04-27 22:57:46
【问题描述】:
我过去使用过 spring MVC、jackson 和 hibernate,不,我必须构建一个 rest 后端,我正在考虑坚持使用相同的技术。
我过去无法做的两件事是减少杰克逊序列化对象的深度。例如,假设我有两个类:
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"}]}
或者动态选择只提供角色的 id 而不是完整的对象
{id:1, name:"jhon", roles:[{id:1},{id:2}]}
有没有办法使用杰克逊过滤器和 Spring mvc 来实现这一点?我做了一些研究,但我不知道该去哪里,你能指出我正确的方向吗? :)
谢谢!!
【问题讨论】:
-
出于好奇,你为什么要这样做?
-
我也在使用休眠,所以当我返回一个对象时,杰克逊也会发布该对象的所有子对象(我最终得到所有 DB 发布),所以我想动态发布整个对象子对象或只需 de childs ID,以便客户知道如何要求他们。
标签: spring-mvc jackson