首页 > 其他分享 >json解析异常显示{“$ref“:“$[0]“}

json解析异常显示{“$ref“:“$[0]“}

时间:2023-03-09 16:55:41浏览次数:30  
标签:parentEntranceGuardList name 11111 detail json 解析 ref id

在编写测试代码实现一个组织架构树的功能时,部门的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"}]
}]

 

标签:parentEntranceGuardList,name,11111,detail,json,解析,ref,id
From: https://www.cnblogs.com/eternality/p/17199099.html

相关文章

  • React Hooks源码深度解析
    作者:京东零售郑炳懿前言ReactHooks是React16.8引入的一个新特性,它允许函数组件中使用state和其他React特性,而不必使用类组件。Hooks是一个非常重要的概念,因为它们提......
  • React Hooks源码深度解析
    作者:京东零售郑炳懿前言​​ReactHooks​​是​​React​​16.8引入的一个新特性,它允许函数组件中使用​​state​​和其他React特性,而不必使用类组件。​​Hooks​​......
  • 06、数据解析技术
    转载公众号《微言晓意》,仅用于个人学习由于网络空间态势感知的数据来自众多的网络设备,其数据格式、数据内容、数据质量千差万别,存储形式各异,表达的语义也不尽相同。如果能......
  • 【Mybatis】【SQL执行过程】【四】Mybatis源码解析-Insert的执行过程
    1 前言上节带大家简单回顾了下SqlSession以及内部的执行器的创建,那么这节我们就开始看我们的语句都是如何执行的。调试代码://xml<insertid="insertOne"paramete......
  • 遍历JSONObject、JSONArray (适用任意复杂结构类型)
    https://blog.csdn.net/xiangshui021/article/details/120059652?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7......
  • 【Mybatis】【SQL执行过程】【三】Mybatis源码解析-SqlSession、Executor的创建
    1 前言上节我们看到 MapperMethod执行的前奏,看到其实都是调用的SqlSession去执行的,而SqlSession又是调用其内部的Executor来进行执行的,那么这节我们先来看下回......
  • fastjson
    1.2.25-1.2.41版本绕过首先我们用以前的脚本打一下:发现报错autoType不允许后面的类加载,查看代码publicClass<?>checkAutoType(StringtypeName,Class<?>expect......
  • 66.mysql的json语法
    Mysql的json语法:#创建json表createtablet_json(idintprimarykey,snamevarchar(20),infojson);#插入json数据insertintot_json(id,sname,info)values(1,'......
  • Host Referer User-Agent Content-Type
    Host作用:请求报头域主要用于指定被请求资源的internet主机和端口号 它通常从HTTPURL中提取出来的我们在浏览器中输入:http://fljf.com:8080......
  • vuex-router-sync 源码解析
    vuex-router-sync:路由状态管理,保持vue-router和vuex存储同步。import{sync}from'vuex-router-sync'importrouterfrom'@/router'importstorefrom'@/store'syn......