接口返回json串出现"
r
e
f
"
:
"
ref":"
ref":"[0]",经查询为fastjson解析重点重复引用。
原代码:
@RequestMapping(value = "/findAllCourse" , method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public List<Map<String,Object>> findAllCourse(){
List<Course> listCourse = courseService.findAllCourse();
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map map = new HashMap<String ,Object>();
if (listCourse.size()>0){
for(int i =0;i<listCourse.size();i++){
Course course = listCourse.get(i);
map.put("courseId", course.getCourseId());
map.put("courseName", course.getCourseName());
map.put("courseType", course.getCourseType());
map.put("courseTime", course.getCourseTime());
map.put("courseDifficult", course.getCourseDifficult());
map.put("coursePrice", course.getCoursePrice());
map.put("courseContent", course.getCourseContent());
map.put("teacherId", course.getTeacherId());
map.put("courseImg", course.getCourseImg());
map.put("lableId", course.getLableId());
list.add(map);
}
return list;
}
else {
map.put("course", 0);
list.add(map);
return list;
}
}
1.首先检查代码,是否出现循环中重复使用的问题。经检查,我的问题就出在这一步:Map map = new HashMap<String ,Object>();
这句话应放入for循环内部。
更改后的代码:
@RequestMapping(value = "/findAllCourse" , method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public List<Map<String,Object>> findAllCourse(){
List<Course> listCourse = courseService.findAllCourse();
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
if (listCourse.size()>0){
for(int i =0;i<listCourse.size();i++){
Map map = new HashMap<String ,Object>();
Course course = listCourse.get(i);
map.put("courseId", course.getCourseId());
map.put("courseName", course.getCourseName());
map.put("courseType", course.getCourseType());
map.put("courseTime", course.getCourseTime());
map.put("courseDifficult", course.getCourseDifficult());
map.put("coursePrice", course.getCoursePrice());
map.put("courseContent", course.getCourseContent());
map.put("teacherId", course.getTeacherId());
map.put("courseImg", course.getCourseImg());
map.put("lableId", course.getLableId());
list.add(map);
}
return list;
}
else {
Map map = new HashMap<String ,Object>();
map.put("course", 0);
list.add(map);
return list;
}
}
问题解决。
2.如检查代码未发现问题,则考虑网上普遍出现的解决方法:
JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetact);