作者:mobiledu2502931997 | 来源:互联网 | 2023-09-06 10:44
解决$ref引用问题小程序突然在前台拿数据的时候发现出现了$ref引入问题,导致数据为空当数据字段单独存在没做双向绑定的时候我们可以直接通过在return的toJSONString
解决$ref引用问题
小程序突然在前台拿数据的时候发现出现了$ref引入问题,导致数据为空
当数据字段单独存在没做双向绑定的时候我们可以直接通过在return 的toJSONString()中加入SerializerFeature.DisableCircularReferenceDetect方法就可以解决,如图:
但是当字段之间存在ManyToMany多对多双向数据绑定的关系时则会出现“栈溢出”的错误,情况如下图
这个时候我们需要用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的引用问题
大佬点个订阅再走呗~