数据交互xml、json、protobuf格式比较
1、json: 一般的web项目中,最流行的主要还是json。因为浏览器对于json数据支持非常好,有很多内建的函数支持。 是一种通用和重量级的数据交换格式。以文本结构存储。
2、xml: 在webservice中应用最为广泛,但是相比于json,它的数据更加冗余,因为需要成对的闭合标签。json使用了键值对的方式,不仅压缩了一定的数据空间,同时也具有可读性。 是一种通用和轻量级的数据交换格式。以文本结构存储。
3、protobuf:是后起之秀,是谷歌开源的一种数据格式,适合高性能,对响应速度有要求的数据传输场景。因为profobuf是二进制数据格式,需要编码和解码。数据本身不具有可读性。因此只能反序列化之后得到真正可读的数据。是一种独立和轻量级的数据交换格式。以二进制结构进行存储。
相对于其它protobuf更具有优势
1:序列化后体积相比Json和XML很小,适合网络传输
2:支持跨平台多语言
3:消息格式升级和兼容性还不错
4:序列化反序列化速度很快,快于Json的处理速速
结论:
在一个需要大量的数据传输的场景中,如果数据量很大,那么选择protobuf可以明显的减少数据量,减少网络IO,从而减少网络传输所消耗的时间。
https://zhuanlan.zhihu.com/p/91313277
这个链接上有别人的测试情况,具体本人没有做过相关测试,从测试中结果可以看到在大量数据传输的过程中,protobuf序列化之后比另外的两个序列化之后的字节数要省一大半的空间。效率会比较高