真正原因: 查阅资料发现是因为使用FastJson的JSONArray类型作为返回数据,当像JSONArray对象中添加JSONObject对象,而JSONObject对象中包含相同的节点数据时,FastJson会防止返回数据栈溢出的问题,自动将JSONArray中相同的节点数据使用引用方式代替。-------引用:https://www.jianshu.com/p/f22f98503ead
解决:
流程:禁止循环引用-->转化为 json 字符串-->然后再将 json 串转为 JSONArray-->存入新的 JSONArray
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(arr, SerializerFeature.DisableCircularReferenceDetect));