前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >fastjson 重复引用和循环引用问题

fastjson 重复引用和循环引用问题

作者头像
Mshu
发布于 2018-10-31 02:52:32
发布于 2018-10-31 02:52:32
2.7K00
代码可运行
举报
文章被收录于专栏:咸鱼不闲咸鱼不闲
运行总次数:0
代码可运行

数据传输使用json格式再方便不过了。 fastjson 由阿里巴巴那伙人使用Java语言编写,号称最快的JSON库 前两天遇到一个问题 后台的数据转化为json字符串后发送到前台出现了$ref字样的东西,后来明白了这是引用,在传输的数据中出现相同的对象时,fastjson默认开启引用检测将相同的对象写成引用的形式. 说到引用分为两种,重复引用和循环引用

重复引用

指一个对象重复出现多次

循环引用

指你心里有我,我心里有你(互相引用),这个问题比较严重,如果处理不好就会出现StackOverflowError异常

重复引用的解决方法;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.单个关闭 JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);
2.全局配置关闭 JSON.DEFAULT_GENERATE_FEATURE |= SerializerFeature.DisableCircularReferenceDetect.getMask();

循环引用的解决方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1.如果你前端用不到这个属性在该属性的get方法上加上注解@JSONField(serialize=false),
  这样该属性就不会被序列化出来,这个也可以解决重复引用
2.修改表结构,出现循环引用了就是一个很失败的结构了,不然准备迎接StackOverflowError异常。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
03 FastJson 解决循环引用
用户7630333
2023/12/07
2380
03 FastJson 解决循环引用
fastjson SerializerFeature 序列化策略
fastjson要将enum序列化为ordinal只需要禁止WriteEnumUsingName feature。 首先根据默认的features排除WriteEnumUsingName,然后使用新的features序列化即可。
用户7741497
2022/03/24
1.7K0
【ssm个人博客项目实战07】博客的后台实现什么是循环引用和重复引用关闭循环引用/重复引用
在前面我们已经完成了博客类别的添加修改删除分页查询操作了,现在我们就来完成了博客的添加修改
yukong
2018/08/21
1.7K0
fastjson 笔记
demo/fastjson at master · suveng/demo · GitHub
suveng
2019/11/12
1.5K0
用了几年的 Fastjson,我最终替换成了Jackson!
作者:larva-zhh 来源:www.cnblogs.com/larva-zhh/p/11544317.html
Java技术栈
2021/05/11
5.6K0
浅析 SpringMVC 中返回对象的循环引用问题
「技术分享」某种程度上,是让作者和读者,不那么孤独的东西。欢迎关注我的微信公众号:「Kirito的技术分享」
kirito-moe
2021/07/16
6K0
FastJson 笔记
观察该类的继承与实现关系,不难发现,JSONObject 实现了 Map 接口,而 json 对象中的数据都是以”键:值”对形式出现,可以猜想, JSONObject 底层操作是由Map实现的。
Remember_Ray
2020/03/09
4.5K0
FastJson 反序列化注意事项
问题描述 使用fastJson对json字符串进行反序列化时,有几个点需要注意一下: 反序列化内部类 反序列化模板类 0. Getter/Setter问题 如我们希望返回的一个json串为 "name" : "name", "isDeleted" : true, "isEmpty" : 1 下面是我们的定义的dto对象,通过序列化后能得到我们预期的结果么? private String name; private boolean isDeleted; private int isEmpty; publ
一灰灰blog
2018/02/06
6.9K0
FastJson 反序列化注意事项
Fastjson 使用
fastjson 是阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean序列化为JSON字符串,也可以从 JSON 字符串反序列化到 JavaBean。
acc8226
2022/05/17
1.9K0
fastjson详解
  fastjson用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
良辰美景TT
2018/09/11
3.4K0
fastjson详解
fastjson全局序列化坑
今天遇到这样一个问题: 序列化出现了与预期不一致的效果,重现代码很简单,就返回一个list,包含几个对象
阿超
2022/08/17
1.2K0
fastjson全局序列化坑
FastJson详解
FastJson 是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
冬天vs不冷
2025/01/21
2100
吃透FastJSON,认准此文!
大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚!死鬼~看完记得给我来个三连哦!
蔡不菜丶
2021/02/08
9630
SpringBoot - FastJson
​ fastjson提供了JSONField对序列化与反序列化进行定制,比如可以指定字段的名称,序列化的顺序。JSONField用于属性,方法方法参数上。JSONField的源码如下:
郭顺发
2021/12/17
1.8K0
用了几年的 Fastjson,最终替换成了 Jackson!
> 公众号:[Java小咖秀](https://t.1yb.co/jwkk),网站:[javaxks.com](https://www.javaxks.com)
Java小咖秀
2021/05/06
2.3K0
fastJson使用toJSONString()时自动过滤掉值为null
在做项目时候需要将json对象转化为String字符串,很自然的可以想到使用toJSONString方法,那么这里问题就来了,在使用该方法的时候发现了一个问题,当接收到的报文有null值时,在转化为json字符串时为null的字段会被自动过滤掉,查询资料字后发现可以使用一些序列化的参数来处理这种情况
用户7166392
2020/06/01
8.5K0
json字符串忽略null,忽略字段,首字母大写等gson,jackson,fastJson实现demo,T data JSON.parseObject json转换
json字符串忽略null,忽略字段,首字母大写等gson,jackson,fastJson实现demo
oktokeep
2024/10/09
1590
走进Java接口测试之fastjson指南
在上文 走进Java接口测试之理解JSON和XML基础 我们介绍了 JSON 的基础知识,本文我们深入研究阿里巴巴的开源 JSON 解析库 fastjson。
高楼Zee
2019/07/17
1.4K0
FastJson基本使用
5、注解属性 : deserialize 指定是否反序列化该字段,默认为 true
兮动人
2022/09/26
8360
fastJson的JSONField注解
然后是deserialize:默认为true,如果为false,反序列化时会忽略该属性
阿超
2022/08/16
1.5K0
fastJson的JSONField注解
相关推荐
03 FastJson 解决循环引用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文