在JavaScript中使用Google协议缓冲区(Protocol Buffers)是一个好选择还是使用JSON更好?
另外,如果有人能给我一个简单的JavaScript中实现协议缓冲区的例子就太好了。Google网站上关于此的文档很少。
在JavaScript中使用Google协议缓冲区(Protocol Buffers)是一个好选择还是使用JSON更好?
另外,如果有人能给我一个简单的JavaScript中实现协议缓冲区的例子就太好了。Google网站上关于此的文档很少。
[编辑] 谷歌的协议缓冲区的开源实现可在GitHub上获取。
官方protobuf项目仅支持Java,C ++和Python。不支持JavaScript。
根据该项目的Wiki,有三个将协议缓冲区移植到JavaScript的项目。
Protobuf.js是最新的。
protobuf-js已经两年没有更新了,因此我会倾向于使用Protobuf.js。
问题仍然是“为什么?”:尽管在传输许多数字值时protobuf可能更小,但JSON在JS空间中更常见,并且可能更好地支持和更容易集成到其他工具中。
更新(2016年7月28日): 发布了版本3.0.0 - 支持JavaScript和其他语言,以及其他一些特性。
Google最近为Protobuf添加了JS的alpha支持:https://github.com/google/protobuf/releases/tag/v3.0.0-beta-2
用法:
protoc -I=$SRC_DIR --js_out=$DST_DIR $SRC_DIR/addressbook.proto
发布文档中的截图:
Protobuf 3.0.0已经发布: https://github.com/google/protobuf/releases/tag/v3.0.0
而且它支持原生的JavaScript。基本信息在公告中。
我们将很快研究它。
试试Protostuff!
我在配置上遇到了一些困难,但我相信那更多是我的问题。你可以将一个Protobuff/Protostuff消息序列化/反序列化为JSON。我还处于使用的早期阶段,但目前看起来很有前途。