protobuf序列化工具

作用

把某种数据结构的信息,以某种格式保存起来,并指定了数据类型、数据属性名字。最后实现将复杂数据结构序列化为二进制数组,非常适合网络传输等领域。

使用方法

比如模块A要传给模块B数据,而且该数据有一定的属性、结构等,可以通过一下方式:
1.编写proto文件,描述出数据结构;
2.通过protobuf内置编译器把proto文件转为一个java的包装类;
3.编写java代码来序列化或解析该包装类。
4.发送方调用某种socket的通讯库把序列化之后的字符串发送出去;
5.接收方先通过网络通讯库接收到数据,存放到某字符串,之后解析该字符串。

特点

性能好,效率高(xml的解析即反序列化开销大);
代码生成机制,数据解析类自动生成;
支持多种语言。

缺点

应用不广范;
二进制格式导致可读性差;
缺乏自描述(而xml这点就比较好)。

关键字

modifiers
1 required 不可以增加或删除的字段,必须初始化,否则会导致对象创建不成功
2 optional 可选字段,可删除,可以不初始化
3 repeated 可重复字段, 对应到java文件里,生成的是List

Message
在proto文件里,数据的协议时以Message的形式表现的。

Build
生成具体的java类时,例如Person.java,同时会存在build方法。文档的意思是对于转化后的数据,具有唯一性,build提供了便利的方法来初始化这些数据。

转载于:https://www.cnblogs.com/cashew/p/10722099.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值