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>>(){});
相关推荐
码兄科技10 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
折哥的程序人生 · 物流技术专研11 小时前
第8篇:六大设计原则在工厂模式中的体现
java·设计模式·设计原则·工厂模式·编程进阶·扩充系列
小明bishe1812 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
Drone_xjw12 小时前
从 GDB 到 CDB:C/C++ 程序调试的两把“手术刀”
c语言·开发语言·c++
r_oo_ki_e_12 小时前
Java Map 集合学习笔记
java·笔记·学习
SL-staff12 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
咖啡八杯13 小时前
GoF设计模式——模板方法模式
java·后端·spring·设计模式
爱笑的源码基地13 小时前
一款全开源的信创云PACS影像云平台解决方案,支持多模态医学影像处理(CT/MR/DR/超声/病理等)
java·源码·国产化·pacs·云影像·区域pacs
我命由我1234514 小时前
Android 开发问题:ClickableSpan 的点击事件没有生效
java·java-ee·android studio·android jetpack·android-studio·android runtime
2zcode14 小时前
基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现
开发语言·图像处理·matlab