protocol buffers vs json vs XML

原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com

在分布式系统中,数据序列化传递的情形非常常见,主流的三种,JSON、XML、Protobuf。

XML现在已经很少使用,除非要和遗留系统交互。

JSON用在前端交互和跨组织的API的交互场合比较多。

对于内部系统,特别是性能敏感的区域,推荐使用Protobuf,可以得到最快的序列化速度和最小的结果。

参考资料:

http://stackoverflow.com/questions/14028293/google-protocol-buffers-vs-json-vs-xml

Json

human readable/editable

can be parsed without knowing schema in advance

excellent browser support

less verbose than XML

XML

human readable/editable

can be parsed without knowing schema in advance

standard for SOAP etc

good tooling support (xsd, xslt, sax, dom, etc)

pretty verbose

Protobuf

very dense data (small output)

hard to robustly decode without knowing the schema (data format is internally ambiguous, and needs schema to clarify)

very fast processing

not intended for human eyes (dense binary)

All have good support on most platforms.

时间: 2024-10-10 18:22:40

protocol buffers vs json vs XML的相关文章

使用 Protocol Buffers 代替 JSON 的五个原因

在Ruby和Rails开发者中,面向服务(Service-Oriented)架构有一个当之无愧的名声,它是一个缓解程序规模恶性增长的一个强有力的途径,可在大量应用程序中提取关注点.这些新生小巧的服务通常继续使用Rails或Sinatra,并使用JSON在HTTP上通信.尽管JSON作为一个数据相互交换格式,有很多优点:人类可读.可理解,并通常表现出色. 浏览器和JS并不直接处理数据--尤其是遇到内部服务时.我的观点是,结构化格式,例如谷歌的Protocol Buffers,是一个比JSON在编码

Protocol buffers--python 实践(二) protocol buffers vs json

为什么专门开一个坑,来使用pb.放弃本在各平台上都支持得很好的json而使用pb的一个归根到底的理由,就是希望在保证强类型和跨平台的情况下,能够更轻,更快,更简单.既然是奔着这个目标去的,到底多快我需要一个合理的解释. 在使用pure python官方库的的情况下,对比了pb和json标准库,还有simplejson库的速度. 使用的.proto文件文件如下: syntax = "proto2"; package hello_word; message SayHi { required

快来看看Google出品的Protocol Buffer,别仅仅会用Json和XML了

前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 事实上 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太! 多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将献上一份 Protocol Buffer的介绍 & 使用攻略,希望你们会喜欢. 文件夹 1. 定义 一种 结构化数据 的数据存储格式(相似于 `XML.J

快来看看Google出品的Protocol Buffer,别只会用Json和XML了

前言 习惯用 Json.XML 数据存储格式的你们,相信大多都没听过Protocol Buffer Protocol Buffer 其实 是 Google出品的一种轻量 & 高效的结构化数据存储格式,性能比 Json.XML 真的强!太!多! 由于 Google出品,我相信Protocol Buffer已经具备足够的吸引力 今天,我将献上一份 Protocol Buffer的介绍 & 使用攻略,希望你们会喜欢. 目录 1. 定义 一种 结构化数据 的数据存储格式(类似于 `XML.Json

Java使用Protocol Buffers入门四步骤

Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化.反序列化,经常用于网络传输. 这货实际上类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读性比XML差.类似的还有json.Java的Serializable等. protobuf支持各种语言.本文以Java为例,简单介绍protobuf如何使用.其他语言使用方法类似. 首先需要下载: http://download.csdn.net/downlo

理解netty对protocol buffers的编码解码

一,netty+protocol buffers简要说明 Netty是业界最流行的NIO框架之一优点:1)API使用简单,开发门槛低:2)功能强大,预置了多种编解码功能,支持多种主流协议:3)定制能力强,可以通过ChannelHandler对通信框架进行灵活的扩展:4)性能高,通过与其它业界主流的NIO框架对比,Netty的综合性能最优:5)成熟.稳定,Netty修复了已经发现的所有JDK NIO BUG,业务开发人员不需要再为NIO的BUG而烦恼:6)社区活跃,版本迭代周期短,发现的BUG可以

protocol buffers的使用示例[z]

[http://blog.csdn.net/zhu_xun/article/details/19397081] protocol buffers的使用示例 如果不了解protocol buffers,可以先参看:http://blog.csdn.net/zhu_xun/article/details/19343079 本例的protobuf的版本为2.5.0,运行环境为windows平台(当然,在Linux下使用的方法也一样,只不过是使用shell脚本驱动protobuf程序的运行) 下载pro

Google Protocol Buffers 入门

1. 前言 这篇入门教程是基于Java语言的,这篇文章我们将会: 创建一个.proto文件,在其内定义一些PB message 使用PB编译器 使用PB Java API 读写数据 这篇文章仅是入门手册,如果想深入学习及了解,可以参看: Protocol Buffer Language Guide, Java API Reference, Java Generated Code Guide, 以及Encoding Reference. 2. 为什么使用Protocol Buffers 接下来用“

ProtoBuf.js – Protocol Buffers的Javascript实现(转)

原文链接:ProtoBuf.js – Protocol Buffers的Javascript实现 推荐前端网址:http://keenwon.com/ 在Javascript里比较常见的数据格式就是json,xml,但是这两种格式在数据传输方面有明显不足.而Protocol Buffers可以很好的解决这个问题,下面引用百科的对Protocol Buffers的定义: Protocol Buffers是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储.通