【采坑笔记】fastJson返回数据包含$ref 字符

2019-07-15  本文已影响0人  向天葵

问题描述

在自己的项目中,通过FastJson获取数据时,在数据中出现$ref等奇怪的字符,导致前端无法正常解析JSON数据。


不正常JSON数据

ru

数据对象

项目中包含两个一对多关系的对象,部门Dept和员工Emp
他们具有一对多关系,包含关系如图.


aaa.png

问题产生流程

当向后台请求EMP数据时,前面两个Emp中的DEPT还正常,当请求第三个JSON时,就出现了这个ref,这个ref表示的意义是这个dept与根引用的第一个(0)的dept相同。
这是FastJson表示循环引用时一种节约内存的方法。通过这样的标识符来描述这个JSON对象,可以节省浏览器内存

解决方法

关闭这个循环应用机制即可。
配置一下自己的FastConfig,在FastJsonConfig加入SerializerFeature.DisableCircularReferenceDetect这个配置即可解决。


aaa.png

附:循环引用

循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。引用是通过$ref标示的,下面介绍一些引用的描述

上一篇 下一篇

猜你喜欢

热点阅读