Java---序列化

将java对象保存在文件中或者在网络中传输java对象,都需要用到序列化。
序列化 : 将数据结构或对象转换成二进制字节流的过程
反序列化 :将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程

serialVersionUID作用于版本控制。反序列化时,会检查serialVersionUID是否和当前类的serialVersionUID一致。如果serialVersionUID不一致则会抛出 InvalidClassException 异常。对于不想进行序列化的变量,可以使用 transient 关键字修饰。

一般使用比较多的是fastjson,一些相关指令:

复制代码
//java对象转json字符串
String s= JSON.toJSONString(new User());
//list集合转json字符串
String s1= JSON.toJSONString(list);
//map集合转json字符串
String s2= JSON.toJSONString(map);

//反序列化
//JSON类的静态方法 parseObject
//传递要返回的JSON字符串和传递java对象的class对象
User user= JSON.parseObject(s, User.class);
//list集合反序列化
List<User> list= JSON.parseArray(s1, User.class);
//map集合反序列化,直接反序列化  map集合没有泛型  没有泛型不安全,需要转换
Map<User,User> map=JSON.parseObject(s2,new TypeReference<Map<User,User>>(){});
相关推荐
DavidSoCool7 小时前
Spring AI Alibaba ReactAgent 调用Tool 实现多轮对话
java·人工智能·spring·多轮对话·reactagent
skywalk81637 小时前
Trae生成的中文编程语言关键字(如“定“、“函“、“印“等)需要和标识符之间用 空格 隔开,以确保正确识别
服务器·开发语言·编程
神所夸赞的夏天7 小时前
如何获取多层json数据,存成dictionary,并取最大最小值
java·前端·json
红色的小鳄鱼7 小时前
前端面试js手写
开发语言·前端·javascript
9号达人7 小时前
为什么你应该在 MQ 里用多个消费者,而不是一个
java·后端·架构
焦糖玛奇朵婷7 小时前
健身房预约小程序开发、设计
java·大数据·服务器·前端·小程序
海盗12347 小时前
C#中的IEqualityComparer<T>使用
开发语言·c#
小新同学^O^7 小时前
简单学习 --> TCP协议
java·网络·tcp
江公望7 小时前
Qt QSharedPointer用法,10分钟讲清楚
开发语言·qt
月落归舟8 小时前
深入理解Java适配器模式,彻底搞懂设计思想
java·开发语言·适配器模式