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>>(){});
相关推荐
张健1156409648几秒前
QT创建线程
开发语言·qt
鲸渔1 分钟前
【C++ 输入输出】cin、cout、cerr 与格式化输出
开发语言·c++·算法
wuqingshun3141591 分钟前
说一下mybatis里面#{}和${}的区别
java·spring·mybatis
3GPP仿真实验室3 分钟前
【MATLAB源码】水声:时变信道估计仿真平台
开发语言·matlab
froginwe113 分钟前
Eclipse 关闭项目详解
开发语言
SimonKing4 分钟前
每天白送4000万Token!这款“龙虾”AI神器,微信就能操控电脑
java·后端·程序员
wjs20246 分钟前
《jQuery Validate》深度解析与应用指南
开发语言
橘子编程9 分钟前
编程语言全指南:从C到Rust
java·c语言·开发语言·c++·python·rust·c#
我送炭你添花10 分钟前
边走边聊 Python 3.8:Win7 从入门到高手(目录)
开发语言·python
w_t_y_y11 分钟前
工具篇(一)机器学习常用的python包
开发语言·python·信息可视化