json解析异常显示{“$ref“:“$[0]“}
在编写测试代码实现一个组织架构树的功能时,部门的parent部门没有显示,出现了json解析异常错误
[{“r e f " : " ref":"ref":"[0]”}] [{“r e f " : " ref":"ref":"[1]”}]
[
{"detail":"O","id":"11111","name":"网络科技公司",
"parentEntranceGuardList":[]],
{"detail":"1","id":"11113","name":"网络部",
"parentEntranceGuardList":[{"$ref":"$[0]"}],"parentId":"11111"},{"detail":"2","id":"11114","name":"网络信息安全部",
"parentEntranceGuardList": [{"$ref":"$[1]"}],"parentId":"11113"}
]
出现r e f : " ref: "ref:"[0]"的原因 多个元素持有同一个引用。是因为循环引用对象重复,对象的hashcode是一样的,使用toString显示不同,但是用json就解析错误了
解决方案
1.取消FastJson的循环引用的检查:
SerializerFeature.DisableCircularReferenceDetect
JsONObiect.toJSONString(quardVoList.SerializerFeature.DisablecircularReferenceDetect)
也可以在项目拦截配置里加入全局禁用循环引用
但是有可能会导致StackOverflowError异常。
2. 加在字段上面 禁用循环引用
@JSONField(serialzeFeatures = {SerializerFeature.DisableCircularReferenceDetect})
3.通过对象拷贝,将对象的属性值复制新的对象中。
BeanUtils.copyProperties (old,new);
使用后 成功显示
[{"detail":"O","id":"11111","name":"网络科技公司","parentEntranceGuardList":[]},
{"detail":"1","id":"11113","name":"网络部",
"parentEntranceGuardList":[{"detail":"O","id": "11111","name":"网络科技公司","parentEntranceGuardList": []}],"parentId":"11111"}
,{"detail":"2","id":"11114","name":"网络信息安全部",
"parentEntranceGuardList": [{"detail":"1","id": "11113","name": "网络部",
"parentEntranceGuardList": [{"detail":"O","id":"11111","name":"网络科技公司","parentEntranceGuardList": [1}],""parentId":"11113"}]
}]
json解析异常显示{“$ref“:“$[0]“}的更多相关文章
- json解析异常 - net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
注:在项目中, 我使用原生的ajax请求数据的时候, JSONObject没能帮我解析, 当却不给我报错, 我是在junit单元测试中测试的时候, 发现的.发现好多时候, 特别是通过ajax请求, 不 ...
- 阿里巴巴 fastjson-1.2.12.jar json解析异常java.lang.ClassFormatError: Invalid method Code length 66865 in class file com/alibaba/fastjson/serializer/ASMSerializer_6_UserKdlb
承接上篇:fastjson反序列化LocalDateTime失败的问题java.time.format.DateTimeParseException: Text '2019-05-24 13:52:1 ...
- 常用json解析库比较及选择 fastjson & gson
一.常用json解析库比较及选择 1.简介 fastjson和gson是目前比较常用的json解析库,并且现在我们项目代码中,也在使用这两个解析库. fastjson 是由阿里开发的,号称是处理jso ...
- Cocos2d-x3.0 Json解析
2dx3.0下一个JSON解析库官员以及集成.我们参考一下吧OK. JSON文件hello.json内容 {"pets":["dog","cat&qu ...
- Json 网络传递解析异常
在项目中碰到一个bug,A项目请求B项目,获取到的Json无法解析,B项目封装的Json,在项目内部可以正常解析,问题并不是Json 解析的错误,而是实体Bean中有数组类型的字段;解决办法就是对封装 ...
- .Net Core 3.0原生Json解析器
微软官方博客中描述了为什么构造了全新的Json解析器而不是继续使用行业准则Json.Net 微软博客地址:https://devblogs.microsoft.com/dotnet/try-the-n ...
- JSON解析实例——使用Json-lib
JSON解析实例——使用Json-lib Json-lib下载及使用 本文介绍用一个类库进行JSON解析. 工具下载地址:http://sourceforge.net/projects/json-li ...
- 在Json解析过程中,我为什么用object1.optInt ,和 object1.optString
今天在做Json解析的时候,出现了一段代码没执行的问题,于是找了一下原因: 1.原代码是: 发现 红色的一句 没有执行,查看控制台发现了异常 2.修复bug ,正确的代码为 3.总结 ...
- 一起写一个JSON解析器
[本篇博文会介绍JSON解析的原理与实现,并一步一步写出来一个简单但实用的JSON解析器,项目地址:SimpleJSON.希望通过这篇博文,能让我们以后与JSON打交道时更加得心应手.由于个人水平有限 ...
- android json解析及简单例子
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
随机推荐
- clickhouse 安装部署(linux)
1.安装部署 1.1下载文件 可以按照官网步骤安装 https://clickhouse.tech/docs/zh/getting-started/install/. 这个库目前大小有2G,网络不允许 ...
- 复制文本到粘贴板 (vue3)(兼容ios)
// 点击复制到剪贴板 const copyToClipboard = (content)=> { if (window.clipboardData) { window.clipboardDat ...
- Promise async await的用法实例一枚
getlog2() { console.log("222"); }, getlog3() { return new Promise((resolve, reject) => ...
- 将map转成vo实体
//将map转成vo实体 AssetManagementProductsVO param= JSON.parseObject(JSON.toJSONString(map), AssetManageme ...
- JSON常见用法
https://blog.csdn.net/weixin_43631296/article/details/105253434
- layui tree 未命名 所遇到的坑
由于传入类型不对,需要传入object类型,我传入的是String类型,所以出现了 一堆未命名, 在控制台输出查看,是一模一样的,困扰了我一下午,再次感谢老哥 参考自:https://www.cnbl ...
- linux查看已知进程PID所在的目录
pwdx 命令 pwdx PID [was@CMTRMWAS1 ~]$ pwdx 31996 31996: /was/AppServer/profiles/AppSrv03
- 后台运行&和nohup使用
这里首先先介绍一下 ctrl+z bg fg jobs 命令 下面为了观察效果,test1.sh脚本不停的输出hello ctrl + z ,会使一个正在运行的进程挂起(暂停)到后台,而且执行jobs ...
- JavaWeb笔记第一弹
一.MYSQL的安装 1.MYSQL的安装 可以去官网找到与自身计算机向对应的版本进行下载 网址如下: MySQL :: Download MySQL Community Server 2.MYSQL ...
- Python学习笔记--第二阶段啦
初识对象 示例: 类的成员方法 上图中的self必须填写!!! 示例: 类和对象 有c和c++语言基础的话,就会发现其实是一样的道理,只是实现代码有差异 构造方法(init) 示例: 注意: 其他内置 ...