热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决$ref引用问题,以及绑定ManyToMany关系后引发的栈溢出错误

解决$ref引用问题小程序突然在前台拿数据的时候发现出现了$ref引入问题,导致数据为空当数据字段单独存在没做双向绑定的时候我们可以直接通过在return的toJSONString

解决$ref引用问题

小程序突然在前台拿数据的时候发现出现了$ref引入问题,导致数据为空

1651750703191

当数据字段单独存在没做双向绑定的时候我们可以直接通过在return 的toJSONString()中加入SerializerFeature.DisableCircularReferenceDetect方法就可以解决,如图:

1651753323913

但是当字段之间存在ManyToMany多对多双向数据绑定的关系时则会出现“栈溢出”的错误,情况如下图

1651753634104

这个时候我们需要用new对象的方式把数据存入new出的对象当中,具体操作如下

JSONObject jSOnObject= new JSONObject();
List users=new ArrayList();
for(User user:userService.getUsers()) {//这里返回的是一个List集合
User saveUser = new User();
saveUser.setUsername(user.getUsername());
saveUser.setPhone(user.getPhone());
saveUser.setEmail(user.getEmail());
//因为这里从数据库拿到的是一个Set集合所以重新new了一个set集合
Set setDepts=new HashSet() ;
//这个方法是自己写的sql通过多表联查条件userId拿到的部门数据
setDepts.add(deptService.getDeptnameByuserid(user.getId()));
saveUser.setDept(setDepts);
users.add(saveUser);
}
jSONObject.put("users",users);
return obj.toJSONString(jSONObject,SerializerFeature.DisableCircularReferenceDetect);

这样我们就解决了$ref的引用问题

大佬点个订阅再走呗~



推荐阅读
author-avatar
mobiledu2502931997
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有