序列化技术

单位

bit 比特

比特是计算机内部数据处理和存储的基础,他可以表示两种状态:0或1

byte 字节

一个字节由8个比特组成。通常用来度量存储容量、传输速度等

character 字符

字符是人类语言中的基本单位,代表一个文本元素,如字母,数字、标点符号等。

character set 字符集

字符集是一个特定的字符集合,定义了一种语言或一组相关语言中的可用的所有字符。就是字符的逻辑定义。

encoding 编码

编码是将字符映射到比特序列的规则,以至于计算机可以存储处理文本。就是字符的物理存储方式。

英文字符集与编码

  • ASCII

中文字符集与编码

  • GB2312编码
  • GBK编码
  • GB18030编码
  • Big5编码

Unicode字符集与编码

  • UTF-32编码
  • UTF-16编码
  • UTF-8编码

序列化

Serialization 序列化

序列化是指将数据结构或对象转换为一种格式,通常是比特流(一串比特的序列),以便能够在存储或传输时保留其状态。

Deserialization 反序列化

反序列化是相反的过程,它将序列化的数据重新转换回原始的数据结构或对象。

序列化的技术选项方案维度

  • 成熟度
  • 跨语言
  • 易用性
  • 扩展性
  • 性能

序列化方法

IDL

  • JSON
  • XML

非IDL

  • Thrift
  • Protocol Buffer
  • Avro

文本格式

JSON

JavaScript Object Notation

JSON的结构

  • key/value对的集合 A collection of name/value pairs
  • 值的有序列表 An ordered list of values

数据类型

  • string
  • number
  • true
  • false
  • null

XML

Extensible Markup Language可扩展标记语言

YAML

YAML Ain't Markup Language

YAML is a human-friendly data serialization language for all programming languages.