栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jackson - 简述几种常见的序列化协议

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jackson - 简述几种常见的序列化协议

文章目录
    • 1. 序列化的定义
    • 2. HTTP协议
    • 3. 常用的序列化协议
      • 1. xml协议
      • 2. Json协议
      • 3. Protobuf协议
    • 4. 理解JSON序列化
    • 5. 常见的序列化方式

1. 序列化的定义

序列化是将对象的状态信息转换为可存储或可传输的格式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

序列化:将对象的状态信息转换为可存储或传输的格式的数据的过程。

反序列化:将可存储或传输的格式的数据转换为对象的状态信息的过程。

常见的序列化格式有:二进制格式、JSON、XML等。

2. HTTP协议

HTTP协议早期专门用于传输超文本数据html,但是随着协议发展多元化,不限制数据格式。它是一个在传输层,基于TCP协议实现的应用层协议,使用的是字符串明文传输。

HTTP协议规定 POST 提交的数据必须放在消息主体中,但协议并没有规定数据必须使用什么编码方式。因此开发者可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。数据发送出去后需要服务器端解析,服务端通常是根据请求头中的 Content-Type 字段得到请求中的消息主体是用何种方式编码,再对主体进行解析。

application/json:JSON 数据格式

application/xml:XML数据格式

3. 常用的序列化协议

协议可以理解两个节点之间为了协同工作实现信息交换,协商一定的规则和约定。协议有流程规范和编码规范。编码规范就是我们通常所说的编解码,序列化。我们说的编码格式就是一种协议,比如JSON协议,XML协议。

1. xml协议

xml是一种通用和轻量级的数据交换格式语言,是指可扩展标记语言(extensible markup language),以文本结构进行存储。它可以用来标记数据、定义数据类型,提供统一的方法来描述和交换,而且独立于程序语言或供应商的结构化数据。

和JSON一样,数据在序列化成字节流之前都转换成字符串。可读性强,性能差,异构系统、Open API类型的应用中常用。

2. Json协议

Json是一种通用和轻量级的数据交换格式,也是以文本结构进行存储,是一种简单的消息格式,全称为JavaScript Object Notation。Json作为数据包格式传输时具有更高的效率,这是因为Json不像xml那样需要有严格的闭合标签,这就让有效数据量与总数据包比有着显著的提升,从而减少同等数据流量的情况下网络的传输压力!

将Java POJO对象转换成JSON结构化字符串。基于HTTP协议,在Web应用、移动开发中是常用的编码方式,因为JSON的可读性较强。但是它的性能稍差。

3. Protobuf协议

Protobuf是Google开发的一种独立和轻量级的数据交换格式,以二进制结构进行存储,用于不同服务之间序列化数据。全称为Protocol Buffers,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者序列化,可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

4. 理解JSON序列化


HTTP协议是基于文本格式的,指的是协议的指令、状态是文本格式的,但是传输的东西可以是文本也可以是二进制。

如果我们在HTTP协议中设置Content-Type中设置application/json,则代表前端的请求数据是JSON字符串格式,服务端需要将JSON字符串转化为Java对象,这个过程就是反序列化。

同理,当我们想要将Java对象的数据响应给前端时,也需要将java对象序列化为JSON字符串,然后通过HTTP协议报文响应给前端。

5. 常见的序列化方式
  1. java默认的序列化机制
  2. Json序列化方式
  3. XML序列化方式
  4. Protobuf序列化方式
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871611.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号