1、toJsonString时WriteClassName

2、如果有泛型则需要开启类型自动转换

比如:

package com.example.springbootdemo;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data;
import org.junit.jupiter.api.Test;/*** @author zhouwenjun* @version 2022/3/29*/
public class JsonTest {@Testpublic static void main(String[] args) {ClassA classA = new ClassA();Address address = new Address();address.setAddress("aaaa");ClassB<Address> classB = new ClassB<>();classB.setName("xxx");classB.setAddress(address);classA.setBase(classB);String jsonStr = JSON.toJSONString(classA);System.out.println(jsonStr);ClassA copy = JSON.parseObject(jsonStr, ClassA.class);// 丢失信息: {"base":{"name":"xxx"}}System.out.println(JSON.toJSONString(copy));String jsonStrWithClass = JSON.toJSONString(classA, SerializerFeature.WriteClassName);System.out.println(jsonStrWithClass);// 开启泛型自动转换ParserConfig.getGlobalInstance().addAccept("com.example.springbootdemo");ClassA rightCopy = JSON.parseObject(jsonStrWithClass, ClassA.class);// {"base":{"address":"yyy","name":"xxx"}}System.out.println(JSON.toJSONString(rightCopy));}@Datastatic class ClassA {Base base;}@Datastatic class Base {String name;}@Datastatic class ClassB <T> extends Base {T address;}@Datastatic class Address {String address;}
}

fastJson深拷贝相关推荐

  1. 基于java实现浅拷贝和深拷贝

    目录 1.概念 2.浅拷贝 2.1.浅拷贝实战 3.深拷贝 3.1.嵌套 clone 方法 3.2.使用序列化流 3.3.使用开源工具类 1.概念 浅拷贝:在拷贝一个对象时,复制基本数据类型的成员变量 ...

  2. [设计模式] ------ 原型模式(浅拷贝和深拷贝)

    原型模式 原型模式就是使用复制对象,创建出新的对象,并且不需要知道创建的细节(比如类的属性的赋值等等). 基本使用(浅拷贝) 常见的就是使用Object的clone方法.需要让类实现Cloneable ...

  3. 如何对一个对象进行深拷贝

    前面说了如何对一个对象进行浅拷贝,本文来说下如何对一个对象进行深拷贝. 文章目录 概述 拷贝对象 方法一 构造函数 方法二 重载clone()方法 方法三 Apache Commons Lang序列化 ...

  4. java深拷贝的三种方式

    问题:spring boot/JPA项目中,修改某个对象以后需要生成一个VO对象给客户端,数据库对应的POJO对象里有个Map类型的对象(名字叫para),这个对象的value又是个Map,我使用Ma ...

  5. Java 浅拷贝和深拷贝的理解和实现方式

    https://www.cnblogs.com/shakinghead/p/7651502.html https://blog.csdn.net/huwentao_totti/article/deta ...

  6. map复制 java_java 复制Map对象(深拷贝与浅拷贝)

    1.深拷贝与浅拷贝 浅拷贝:只复制对象的引用,两个引用仍然指向同一个对象,在内存中占用同一块内存: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象: 换言之 ...

  7. 【面试】深拷贝与浅拷贝的实现原理

    文章目录 前言 1. 什么是深拷贝与浅拷贝 2. 浅拷贝的实现原理 3. 深拷贝的实现原理 3.1 实现Cloneable接口 3.2 使用JSON字符串转换 3.3 集合实现深拷贝 总结 前言 深拷 ...

  8. Java Map 深拷贝方法

    本文共测试三种拷贝方式: 转成 JSON 再转回来 使用 Apache 的序列化工具类 SerializationUtils 新建 Map 时将原 Map 传入构造方法 前两种是深拷贝,第三种是浅拷贝 ...

  9. Jackson、FastJson快速入门(整合SpringMVC)

    目录 1. 什么是 JSON 2. JSON 语法规则 3. JSON 与 JS 对象的关系 4. JSON 和 JS 对象互转 5. Jackson-数据格式转换 1. 环境搭建 2. 对象转jso ...

最新文章

  1. MySQL57安装与设置
  2. THE DRAGON PRINCE BOOK 3
  3. 八城联动丨神策 2020 数据驱动用户大会「成都站」邀您面基!
  4. 关于c++中运算符重载
  5. CodeForces - 555A Case of Matryoshkas(思维)
  6. 阿里云ECS开放批量创建实例接口,实现弹性资源的创建
  7. JMeter中如何实现参数化(CSV)
  8. Winform导入文件
  9. 性能为王:选择模拟监控的10大理由!
  10. svn add后的数据如何取消-svn revert??--zz
  11. 如何编辑PDF文档中的文本呢?
  12. sketchup生成面域插件_适用于Revit / SketchUp / Rhino / ArchiCAD插件最新版
  13. python乌龟吃鱼
  14. deamon(守护进程)的实现
  15. Chrome浏览器安装失败
  16. 集群渲染和渲染农场是什么意思?跟云渲染有什么关系?
  17. AAAI2021 | 在手机上实现19FPS实时的YOLObile目标检测,准确率超高
  18. 全国大学生智能车竞赛2022年-智能汽车竞赛发展沙龙
  19. linux系统设置密钥登录
  20. linux安装Node.js(详细)Node.js安装教程

热门文章

  1. 疫情之下「在家办公模式」开启,你该选择哪些远程协同工具?| 特稿
  2. 网络摄像头海思开发板_海思HI3518EV、200wifi摄像头完美解决方案
  3. Python程序:任意输入一个三位数,然后把三位数的位置反转输出。
  4. 解决懒惰、拖延的方法
  5. WEB Java学习
  6. opc客户端读取数据品质是bad_听说看了这篇文章就彻底搞懂了什么是OPC(上)
  7. MATLAB中interp2参数使用指南
  8. windows开机自动进bios 常见的问题
  9. chatgpt赋能Python-pythonista免费
  10. 云服务案例分析 BB平台 Quiz4