在mapper中写的语句,结果集中association,采用的一个对象,整个list列表中每个元素有一个对象元素,如果第二个元素中有一个与第一个元素中对象同名的,就会去引用上一个元素的地址,在json前台解析的时候就不会解析出来相应对象的数据,具体如下,根据网上搜索的原因的例子有:

DisableCircularReferenceDetect来禁止循环引用检测:

JSON.toJSONString(..., SerializerFeature.DisableCircularReferenceDetect)

当进行toJSONString的时候,默认如果重用对象的话,会使用引用的方式进行引用对象。

[java] view plain copy
  1. "颜色": [
  2. {
  3. "$ref": "$.itemSkuList[0].itemSpecificationList[0]"
  4. },
  5. {
  6. "$ref": "$.itemSkuList[1].itemSpecificationList[0]"
  7. }
  8. ]

循环引用

很多场景中,我们需要序列化的对象中存在循环引用,在许多的json库中,这会导致stackoverflow。在功能强大的fastjson中,你不需要担心这个问题。例如:

[java] view plain copy
  1. A a = new A();
  2. B b = new B(a);
  3. a.setB(b);
  4. String text = JSON.toJSONString(a); //{"b":{"a":{"$ref":".."}}}
  5. A a1 = JSON.parseObject(text, A.class);
  6. Assert.assertTrue(a1 == a1.getB().getA());

引用是通过"$ref"来表示的

引用 描述
"$ref":".." 上一级
"$ref":"@" 当前对象,也就是自引用
"$ref":"$" 根对象
"$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0)

对于本博主的项目,其解决方案是,1).将结果集中association的类型写成map

2).在最后取得包含了对象的list列表后,将该列表转换为json格式,本博主代码

      PageInfo<Map<String,Object>> pageInfo = rentService.getRentOrderList(Integer.valueOf(pageNumber), Integer.valueOf(pageSize), paramMap);Map<String,Object> data = new HashMap<String,Object>();data.put("orderList",pageInfo.getList());data.put("total", pageInfo.getTotal());Object objData = JSONObject.toJSON(data);

转载于:https://www.cnblogs.com/xiaoyao-001/p/9269779.html

前端解析返回的对象时json显示$ref问题的解决相关推荐

  1. lombok使用中出现继承关系的对象时,出现的问题及解决办法

    lombok使用中出现继承关系的对象时,出现的问题及解决办法 参考文章: (1)lombok使用中出现继承关系的对象时,出现的问题及解决办法 (2)https://www.cnblogs.com/h- ...

  2. SpringBoot(3) 获取后台返回字符串对象及json数据

    下面讲解springboot-web工程 如何跳转到一个页面 和 获取一个后台返回的字符串,对象,以及json数据... 1.创建一个maven web工程   2.导入依赖 <!-- web支 ...

  3. 从xml中返回的对象,和new 返回的对象时不同的。

    public BigDecimal getTax() {return tax == null ? BigDecimal.ZERO : tax;} 这是自定义的一个类 对null 做出了处理. 但是如果 ...

  4. java 视图对象转换,使用spring boot开发时java对象和Json对象转换的问题_JavaScript_网络编程...

    将java对象转换为on对象,市面上有很多第三方jar包,如下: jackson(最常用) com.fasterxml.jackson.core jackson-databind 2.11.2 gso ...

  5. SpringBoot将自定义对象转JSON对象问题研究

    SpringBoot JSON序列化自定义对象研究 1. 问题描述 1.1 工程代码 1.2 测试 2. 问题分析 2.1 初步分析结论 2.2 实验验证结论 2.3 问题拓展 3. 结论 摘要(干货 ...

  6. 理解JSON对象:JSON.parse、 JSON.stringify

    何时是JSON,何时不是JSON? JSON就是一个有特殊规则的字符串,按照这个规则我们就可以把这个字符串解析成JS对象. JSON是设计成描述数据交换格式的,他也有自己的语法,这个语法是JavaSc ...

  7. json解析对象时指定解析_不解析,使用解析对象

    json解析对象时指定解析 将面向对象的后端与外部系统集成的传统方式是通过数据传输对象 ,这些对象在外出之前先序列化为JSON,然后在返回时反序列化. 这种方法很流行,而且是错误的. 序列化部分应该由 ...

  8. spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式

    spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式   在类名,接口头上注解使用在 @JsonIgnoreProperties(value={"comid" ...

  9. 解决json字符串转为对象时LocalDateTime异常问题

    1 出现异常 这次的异常出现在前端向后端发送请求体里带了两个日期,在后端的实体类中,这两个日期的格式都是JDK8中的时间类LocalDateTime.默认情况下,LocalDateTime只能解析20 ...

最新文章

  1. 霍夫变换直线检测理解
  2. 微信公众号 获得多客服使用权限
  3. 定制iOS 7中的导航栏和状态栏
  4. Hadoop 安装目录及配置
  5. 边缘设备上的实时AI人员检测:使用预先训练的SSD模型检测人员
  6. linux系统下树莓派拍照,如何在树莓派上使用图片特效
  7. 服务器栈虚拟交换机,FusionSphere分布式虚拟交换机技术白皮书1.docx
  8. STM32 标准外设库(STM32F107)
  9. SI24R1:国产低功耗2.4GHz收发遥控工控答题卡方案芯片替代NRF24L01+
  10. IDEA环境下模块的右下角蓝色小方块缺失的解决方法
  11. Linux中awk后面的RS, ORS, FS, OFS 含义
  12. 电商产品设计:拆单规则和业务场景详解
  13. 04-2. 打印九九口诀表(15)
  14. iphone 热点 android,苹果手机的热点安卓机可以连接吗(图文)
  15. Win10 内置Intel AC-3165无法开启热点 解决
  16. 系统中的DTO与MO
  17. Android 图片压缩方案
  18. 题解 洛谷P1365 WJMZBMR打osu! / Easy
  19. 中基鸿业个人理财的概念
  20. Docker Macvlan网络实验

热门文章

  1. C++双冒号和单冒号的用法区别
  2. 特征提取——HOG方向梯直方图
  3. 大脑比机器智能_机器大脑的第一步
  4. 30几岁该有多少存款才算合格?
  5. 收入和贷款有什么关系?
  6. 就是想让你无法无动于衷:观瑞士的“行为艺术”
  7. 导演李大为婚礼全过程(一)
  8. 台湾印象之八:海角七号
  9. php 删除某个文件夹,Php删除指定文件与文件夹的方法
  10. 台州银行登录显示服务器异常,台州银行网上银行异常问题处理