protocol buffer与json对比

1.JSON与XML

在传统的传输中,JSON与XML是两种常见的格式。我在《由图与数的关系说起——兼谈XML语言的好处》(https://blog.csdn.net/wangzhezhilu001/article/details/51979372/)中说过,XML本质是树,可以方便处理不同层级的关系。

在XML之后,JSON逐渐成为数据传输的重要形式,JSON也是一种树形结构,与XML相比,有如下特点:

1)数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
2)易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
3)支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
4)在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
5)因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
6)没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性(确切说是没有XML语言那么直观)。

2.JSON与Protocol Buffer对比

但JSON之后, 近几年protocol buffer开始兴起。Protocol Buffer是Google推出的编码格式,与JSON相比,具有更大的压缩比,更小的传输体积,更快的传输速度。

Protocol Buffer和JSON相比的特点如下:

1)优点
(1)跨语言,可自定义数据结构。
(2)字段被编号,新添加的字段不影响老结构。解决了向后兼容问题。
(3)自动化生成代码,简单易用(用protoc工具)。
(4)二进制消息,效率高,性能高。
(5)Netty等框架集成了该协议,提供了编×××提高开发效率。

2)缺点
(1)二进制格式,可读性差(抓包dump后的数据很难看懂)
(2)对象冗余,字段很多,生成的类较大,占用空间。
(3)默认不具备动态特性(可以通过动态定义生成消息类型或者动态编译支持)

3)总结:简单快速上手,高效兼容性强,维护成本较高。

3. 各通信格式对比

  

在文件大小、序列化时间和反序列化时间上,protocol buffer都好于JSON和XML。

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值