java方法返回相同json数据的巨大列表

时间:2014-04-27 17:06:53

标签: java json spring-mvc

我有这样的方法

@ResponseBody
 @RequestMapping(method = RequestMethod.GET, value = "/getGroupList", produces = "application/json")
    public Map getGroups() {
        List<UserGroup> userGroups = userGroupService.getAllUserGroups();
        Map result = new TreeMap();
        result.put("groupList", userGroups);
        return result;
    }

当我加载页面/ getGroupList时,它返回一个非常长的json数据。当我调试代码时,我可以清楚地看到在usreGroups列表中只有2个项目。为什么方法getGroups撤回大量数据。返回的数据也以double qoutes结尾,看起来好像直到不完整......

1 个答案:

答案 0 :(得分:0)

这是一个假设。如果您的UserGroup类类似

class UserGroup {
    User user;
    Group group;
}

这些课程就像

class User {
    UserGroup userGroup;
}
class Group {
    UserGroup userGroup;
}

然后序列化过程将永远继续,因为序列化UserGroup将尝试序列化User,它将尝试重新序列化相同的UserGroup等等......

Spring默认使用Jackson序列化为JSON。杰克逊为此提供了许多解决方案,例如@JsonBackReference