fastjson 序列化问题

问题:
使用fastjson 的 对同一个JSONObject对象 多次引用后, 通过 JSON.toJSONString() 方法进行json序列化时出现只有第一次的可以成功序列化未json string 字符串, 后面的对象都为引用地址;

示例:

    public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "fastJson");jsonObject.put("age", 18);List<JSONObject> list = new ArrayList<>();for (int i = 0; i < 5; i++) {list.add(jsonObject);}log.info("数据 : {}", JSON.toJSONString(list));}

输出:

数据 : 
[{"name": "fastJson","age": 18},{"$ref": "$[0]"},{"$ref": "$[0]"},{"$ref": "$[0]"},{"$ref": "$[0]"}
]

解决方案:

    public static void main(String[] args) {JSONObject jsonObject = new JSONObject();jsonObject.put("name", "fastJson");jsonObject.put("age", 18);List<JSONObject> list = new ArrayList<>();for (int i = 0; i < 5; i++) {// list.add(jsonObject);// 添加克隆对象list.add(jsonObject.clone());}log.info("数据 : {}", JSON.toJSONString(list));}

输出:

[{"name": "fastJson","age": 18},{"name": "fastJson","age": 18},{"name": "fastJson","age": 18},{"name": "fastJson","age": 18},{"name": "fastJson","age": 18}
]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/814658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日练习——leetcode1047和239

目录 1047. 删除字符串中的所有相邻重复项 题目描述 解题思路 代码实现 239. 滑动窗口最大值 题目描述 解题思路 代码实现 1047. 删除字符串中的所有相邻重复项 题目描述 给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xf…

棋盘(c++题解)

题目描述 有一个m m的棋盘&#xff0c;棋盘上每一个格子可能是红色、黄色或没有任何颜色的。你现在要从棋盘的最左上角走到棋盘的最右下角。 任何一个时刻&#xff0c;你所站在的位置必须是有颜色的&#xff08;不能是无色的&#xff09; &#xff0c;你只能向上、下、 左、右…

7 个适用于 Windows 的最佳电脑分区数据恢复软件

磁盘分区对于正确存储数据以便从硬盘驱动器快速轻松地访问非常有帮助。但是&#xff0c;如果分区损坏&#xff0c;存储在其中的所有数据都会突然变得无法访问。磁盘分区损坏的原因可能有很多&#xff0c;其中最突出的是病毒攻击、突然断电、物理损坏或由于创建坏扇区。 但是&a…

eNSP-抓包解析TCP三次握手和四次挥手的过程

一、环境搭建 1.设备连接 并 启动所有设备 2.服务器配置 3.客服端配置 二、抓包测试 1.打开抓包软件 2.客户端获取数据 三、抓包结果

深度学习体系结构——CNN, RNN, GAN, Transformers, Encoder-Decoder Architectures算法原理与应用

1. 卷积神经网络 卷积神经网络&#xff08;CNN&#xff09;是一种特别适用于处理具有网格结构的数据&#xff0c;如图像和视频的人工神经网络。可以将其视作一个由多层过滤器构成的系统&#xff0c;这些过滤器能够处理图像并从中提取出有助于进行预测的有意义特征。 设想你手…

Blender3.5 下载地址及安装教程

Blender是一款开源的3D计算机图形软件&#xff0c;广泛应用于动画制作、游戏开发、建模、渲染等领域。它提供了一套强大的工具和功能&#xff0c;让用户能够进行三维建模、动画制作和视觉效果的创作。 Blender支持多种文件格式的导入和导出&#xff0c;使用户能够与其他软件进…

无人机光伏电站巡检:技术革新与未来趋势

1.引言与背景 随着能源需求的日益增长&#xff0c;光伏电站开始走进千家万户。因为国内幅员辽阔且地形复杂&#xff0c;给电站的维护工作造成了很多困扰。如何让光伏电站的稳定运行变得至关重要。传统的巡检方法&#xff0c;如人工巡检&#xff0c;不仅效率低下&#xff0c;还…

Study Pyhton

PyCharm PyCharm是一个写python代码的软件&#xff0c;用PyCharm写代码比较方便。 PyCharm快捷键ctrl alt s打开软件设置ctrl d复制当前行代码 shift alt 上\下将当前行代码上移或下移crtl shift f10运行当前代码文件shiftf6重命名文件 ctrl a全选ctrl c\v\x复制、粘贴、…

[MAUI]集成富文本编辑器Editor.js至.NET MAUI Blazor项目

文章目录 获取资源从源码构建从CDN获取获取扩展插件 创建项目创建控件创建Blazor组件初始化保存销毁编写渲染逻辑 实现只读/编辑功能切换模式获取只读模式状态响应切换事件 实现明/暗主题切换项目地址 Editor.js 是一个基于 Web 的所见即所得富文本编辑器&#xff0c;它由CodeX…

红豆Cat 1开源|项目三: 从0-1设计一款HTTP版本RTU(支持GNSS)产品的软硬件全过程

HTTP版RTU&#xff08;支持GNSS&#xff09;项目概述 RTU&#xff08;Remote Terminal Unit&#xff09;&#xff0c;中文即远程终端控制系统&#xff0c;负责对现场信号、工业设备的监测和控制。RTU是构成企业综合自动化系统的核心装置&#xff0c;通常由信号输入/出模块、微…

RT-Thread内核简介

1、RT-Thread 内核介绍 RT-Thread 内核架构图,内核处于硬件层之上,内 核部分包括内核库、实时内核实现 内核库是为了保证内核能够独立运行的一套小型的类似 C 库的函数实现子集。这部分根据编译器的不 同自带 C 库的情况也会有些不同,当使用 GNU GCC 编译器时,会携带…

为什么ClickHouse查询速度快

导读&#xff1a;ClickHouse速度快的秘诀在于——利用存储引擎的特殊设计充分减少磁盘I/O对查询速度的影响。 ClickHouse为什么查询速度快&#xff1f;本文来揭秘。 1 从存储引擎视角看 ClickHouse速度快的秘诀在于——利用存储引擎的特殊设计充分减少磁盘I/O对查询速度的影…

全国各省环境规制强度数据(2004-2022年)

01、数据简介 以保护环境为目的&#xff0c;对各种环境污染行为进行规制&#xff0c;政府相关政策规制&#xff0c;是社会性规制的重要内容&#xff0c;包含大气、水、废弃物、噪声污染等外部行为&#xff0c;对这些行为进行规制就是要将整个社会为其承担的成本转化为其自身承…

通过一篇文章让你了解Linux的重要性

Linux 前言一、什么是Linux后台vs前台为何大多数公司选择使用Linux作为后台服务器 二、国内企业后台和用户使用Linux现状IT服务器Linux系统应用领域嵌入式Linux系统应用领域个人桌面应用领域 三、就个人能力提升来说&#xff0c;该如何看待Linux网络上的人都怎么说知乎 腾讯面经…

IDEA Warnings:SQL dialect is not configured.

springboot项目XxxMapper.xml文件打开后显示warnings&#xff1a;SQL dialect is not configured......&#xff08;翻译&#xff1a;未配置SQL语言。&#xff09; 大概意思是没有在IDEA中配置当前sql是MySQl、Oracle还是MariaDB等语言。 配置一下就好&#xff1a; 完了&#…

2024年150道高频Java面试题(二十七)

53. 什么是 Java 中的死锁&#xff1f;如何避免&#xff1f; Java中的死锁是指两个或两个以上的线程因为竞争资源而造成的一种僵持状态&#xff0c;每个线程都在等待其他线程释放锁&#xff0c;但是这些锁又被其他线程持有&#xff0c;导致没有任何线程能继续执行下去&#xf…

中国电子学会(CEIT)2022年03月真题C语言软件编程等级考试四级(含详细解析答案)

中国电子学会(CEIT)考评中心历届真题(含解析答案) C语言软件编程等级考试四级 2022年03月 编程题四道 总分:100分一、拦截导弹(25分) 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度…

npm: .npmrc pnpm

pnpm i 安装依赖时&#xff0c;pnpm 的镜像源优先级遵循以下顺序&#xff1a; 命令行参数&#xff1a;可以通过在 pnpm i 命令中使用 --registry 的方式指定镜像源&#xff0c;此时会优先使用命令行参数指定的镜像源。 pnpm i --registry< registry-url >.npmrc 配置&…

谈谈我的软考高级考证之路(系统架构设计师篇)

系统架构设计师备考资料请移步 2023年软考高级系统架构设计师视频教程&#xff0c;推荐下载&#xff01;获取。 备考总体策略 • 总体策略&#xff1a;刷视频记笔记刷真题 • 备考时间&#xff1a;建议报完名之后&#xff0c;开始备考&#xff0c;大致2-3个月&#xff08;基础…

【Java多线程】案例(4):定时器

目录 一、定时器是什么? 二、Java标准库中的定时器 三、自己实现定时器 四、标准库中更推荐使用的定时器 一、定时器是什么? 定时器是一种用于在指定时间间隔或特定时间点执行特定任务的工具或设备。在计算机科学中&#xff0c;定时器通常是软件或硬件组件&#xff0c;用…