一句话解释Java中的序列化和反序列化

好多技术名词特别傻x,取一堆特别绕的名词,然后把人绕的云里雾里,尤其是对初学者,实际就是一句话的事儿。

实际上,什么是Java中的序列化和反序列化啊?

序列化和反序列化的本质就是将Java对象与JSON数据之间进行转换!

说白了,

反序列化:就是后端工程师,把前端扔过来的JSON报文(本质上就是一个字符串),给在接口Controller这里解析了(JSON.parseObject),然后解析成Java对象,以便去代码里去使用。

序列化:就是上面说的,这个Java对象用完了,然后还得传回给前端,那就把这个用完的Java对象(含修改),再给它拼成一个JSON报文(JSON.toJSONString)(本质上也就是一个字符串)再给它扔回去。

就这么简单的事儿。

那么看懂了就不用看下面了,下面补充个详细地说法:

序列化反序列化的本质就是将Java对象与JSON数据之间进行转换。

反序列化(Deserialization)

反序列化是将 JSON 字符串 转换回 Java 对象 的过程。

在这个过程中,JSON 字符串会被解析并映射到 Java 对象的各个属性中,重新生成一个对象。

例如,使用 Fastjson 库的JSON.parseObject()方法来将JSON字符串反序列化为Java对象。反序列化的目的是将从外部系统、文件或网络接收到的JSON数据重新转化为Java对象,以便在应用程序中处理。

String jsonString = "{ \"containerNeedList\": [ ... ] }"; // JSON 字符串

ContainerV1 container = JSON.parseObject(jsonString, ContainerV1.class); // 将 JSON 字符串反序列化为 Java 对象

序列化(Serialization)

序列化是将Java对象转换成JSON字符串的过程。

在这个过程中,Java 对象会被转换成一个JSON格式的数据,通常用于数据交换、存储或传输。

例如,使用Fastjson库的JSON.toJSONString()方法来将一个Java对象序列化成JSON字符串。序列化的目的是方便将对象的数据结构传输到其他系统、存储到文件或者数据库中,或者通过网络发送给其他客户端或服务。

ContainerV1 container = new ContainerV1();

// 设置 container 的属性...

String jsonString = JSON.toJSONString(container); // 将 container 对象序列化为JSON 字符串

总结:

序列化:将Java对象转化为JSON 字符串(或其他格式)。

反序列化:将JSON字符串转化回Java对象。

因此,序列化反序列化确实就是将Java对象和JSON数据进行相互转换的过程,通常用于数据交换和持久化。

全部评论

相关推荐

04-10 01:18
已编辑
东北大学 Java
想起多少写多少============================自我介绍你的Java是自学的吗你平时是怎么学习的项目拷打(问了好多我实际没有做过的场景..)(面试官他们部门做的是类似的项目,问得很细,🐭🐭已经被拷打麻了,感觉对于面试官来说我的玩具项目就像以卵击石,大寄特寄)============================八股一条更新的sql语句,会涉及到哪些日志的更新,说出他们更新的流程(具体细节忘了,只说了个大概,有点寄)线程池的核心参数线程池的执行流程你知道的线程池有哪些为什么不使用jdk自带的线程池为什么会产生死锁死锁的避免synchronize锁升级aqs原理reentrantlock和synchronize的区别redis cluster集群扩容流程(忘记了,胡说八道了个一致性哈希,寄)两道SQL题,问走不走索引(🐭🐭已经被拷打得头昏眼花了,答错了😭,大寄特寄)手撕出现频率最高的k个单词(大寄特寄)(相同频率的单词按照字典序排序,🐭🐭忘记comparator这个单词怎么写了😭,面试官说思路是对的)反问部门业务对于没有实习过的学生,怎么去提高项目的相关经验------------------------------------------------个人总结还是太菜了,很多东西深度理解不够。项目还有很多地方自己没有实现的地方可能还需要结合实际情况去进行思考(即使你没有写还是会被拷打😭)代码一旦脱离了idea没有代码补全就写得一塌糊涂唉,继续加油吧.#牛客AI配图神器#
查看20道真题和解析
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务