前端解析返回的对象时json显示$ref问题的解决
在mapper中写的语句,结果集中association,采用的一个对象,整个list列表中每个元素有一个对象元素,如果第二个元素中有一个与第一个元素中对象同名的,就会去引用上一个元素的地址,在json前台解析的时候就不会解析出来相应对象的数据,具体如下,根据网上搜索的原因的例子有:
DisableCircularReferenceDetect来禁止循环引用检测:
JSON.toJSONString(..., SerializerFeature.DisableCircularReferenceDetect)
当进行toJSONString的时候,默认如果重用对象的话,会使用引用的方式进行引用对象。
- "颜色": [
- {
- "$ref": "$.itemSkuList[0].itemSpecificationList[0]"
- },
- {
- "$ref": "$.itemSkuList[1].itemSpecificationList[0]"
- }
- ]
循环引用
很多场景中,我们需要序列化的对象中存在循环引用,在许多的json库中,这会导致stackoverflow。在功能强大的fastjson中,你不需要担心这个问题。例如:
- A a = new A();
- B b = new B(a);
- a.setB(b);
- String text = JSON.toJSONString(a); //{"b":{"a":{"$ref":".."}}}
- A a1 = JSON.parseObject(text, A.class);
- 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问题的解决相关推荐
- lombok使用中出现继承关系的对象时,出现的问题及解决办法
lombok使用中出现继承关系的对象时,出现的问题及解决办法 参考文章: (1)lombok使用中出现继承关系的对象时,出现的问题及解决办法 (2)https://www.cnblogs.com/h- ...
- SpringBoot(3) 获取后台返回字符串对象及json数据
下面讲解springboot-web工程 如何跳转到一个页面 和 获取一个后台返回的字符串,对象,以及json数据... 1.创建一个maven web工程 2.导入依赖 <!-- web支 ...
- 从xml中返回的对象,和new 返回的对象时不同的。
public BigDecimal getTax() {return tax == null ? BigDecimal.ZERO : tax;} 这是自定义的一个类 对null 做出了处理. 但是如果 ...
- java 视图对象转换,使用spring boot开发时java对象和Json对象转换的问题_JavaScript_网络编程...
将java对象转换为on对象,市面上有很多第三方jar包,如下: jackson(最常用) com.fasterxml.jackson.core jackson-databind 2.11.2 gso ...
- SpringBoot将自定义对象转JSON对象问题研究
SpringBoot JSON序列化自定义对象研究 1. 问题描述 1.1 工程代码 1.2 测试 2. 问题分析 2.1 初步分析结论 2.2 实验验证结论 2.3 问题拓展 3. 结论 摘要(干货 ...
- 理解JSON对象:JSON.parse、 JSON.stringify
何时是JSON,何时不是JSON? JSON就是一个有特殊规则的字符串,按照这个规则我们就可以把这个字符串解析成JS对象. JSON是设计成描述数据交换格式的,他也有自己的语法,这个语法是JavaSc ...
- json解析对象时指定解析_不解析,使用解析对象
json解析对象时指定解析 将面向对象的后端与外部系统集成的传统方式是通过数据传输对象 ,这些对象在外出之前先序列化为JSON,然后在返回时反序列化. 这种方法很流行,而且是错误的. 序列化部分应该由 ...
- spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式
spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式 在类名,接口头上注解使用在 @JsonIgnoreProperties(value={"comid" ...
- 解决json字符串转为对象时LocalDateTime异常问题
1 出现异常 这次的异常出现在前端向后端发送请求体里带了两个日期,在后端的实体类中,这两个日期的格式都是JDK8中的时间类LocalDateTime.默认情况下,LocalDateTime只能解析20 ...
最新文章
- 霍夫变换直线检测理解
- 微信公众号 获得多客服使用权限
- 定制iOS 7中的导航栏和状态栏
- Hadoop 安装目录及配置
- 边缘设备上的实时AI人员检测:使用预先训练的SSD模型检测人员
- linux系统下树莓派拍照,如何在树莓派上使用图片特效
- 服务器栈虚拟交换机,FusionSphere分布式虚拟交换机技术白皮书1.docx
- STM32 标准外设库(STM32F107)
- SI24R1:国产低功耗2.4GHz收发遥控工控答题卡方案芯片替代NRF24L01+
- IDEA环境下模块的右下角蓝色小方块缺失的解决方法
- Linux中awk后面的RS, ORS, FS, OFS 含义
- 电商产品设计:拆单规则和业务场景详解
- 04-2. 打印九九口诀表(15)
- iphone 热点 android,苹果手机的热点安卓机可以连接吗(图文)
- Win10 内置Intel AC-3165无法开启热点 解决
- 系统中的DTO与MO
- Android 图片压缩方案
- 题解 洛谷P1365 WJMZBMR打osu! / Easy
- 中基鸿业个人理财的概念
- Docker Macvlan网络实验