跳至主要內容
Java 和 JSON 序列化

Java 和 JSON 序列化

JSON(JavaScript Object Notation)是一种基于文本的数据交换格式。几乎所有的编程语言都有很好的库或第三方工具来提供基于 JSON 的 API 支持,因此你可以非常方便地使用任何自己喜欢的编程语言来处理 JSON 数据。

本文主要从 Java 语言的角度来讲解 JSON 的应用。

JSON 简介

JSON 是什么

JSON 起源于 1999 年的 JS 语言规范 ECMA262 的一个子集(即 15.12 章节描述了格式与解析),后来 2003 年作为一个数据格式ECMA404(很囧的序号有不有?)发布。
2006 年,作为 rfc4627 发布,这时规范增加到 18 页,去掉没用的部分,十页不到。


钝悟...大约 8 分钟Java工具IOJavaIO序列化JSON
Java 二进制序列化

Java 二进制序列化

简介

为什么需要二进制序列化库

原因很简单,就是 Java 默认的序列化机制(ObjectInputStreamObjectOutputStream)具有很多缺点。

不了解 Java 默认的序列化机制,可以参考:Java 序列化


钝悟...大约 8 分钟Java工具IOJavaIO序列化二进制
Java 序列化工具

Java 序列化工具

Java 官方的序列化存在许多问题,因此,很多人更愿意使用优秀的第三方序列化工具来替代 Java 自身的序列化机制。 如果想详细了解 Java 自身序列化方式,可以参考:Java 序列化

序列化库技术选型:

  • thriftprotobuf - 适用于对性能敏感,对开发体验要求不高的内部系统。
  • hessian - 适用于对开发体验敏感,性能有要求的内外部系统。
  • jacksongsonfastjson - 适用于对序列化后的数据要求有良好的可读性(转为 json 、xml 形式)。

钝悟...小于 1 分钟Java工具IOJavaIO序列化
深入理解 Java 序列化

深入理解 Java 序列化

img
img

序列化简介

由于,网络传输的数据必须是二进制数据,但调用方请求的出入参数都是对象。对象是不能直接在网络中传输的,所以需要提前把它转成可传输的二进制,并且要求转换算法是可逆的。


钝悟...大约 21 分钟JavaJavaCoreIOJavaJavaCoreIO序列化SerializableExternalizabletransient