Protocol

Protocol

作用:

比json,XML体积小,序列化速度快,传输速度快。但是通用性差,二进制方式存储,需要通过.proto文件查看数据结构

语法:

Protobuf3语法详解 - 望星辰大海 - 博客园 (cnblogs.com)

protocol例子:(通过 .proto文件查看)

syntax = "proto3";

package rbk.protocol;

import "google/protobuf/wrappers.proto";

message Message_Map {
    string map_directory = 1;
    Message_MapHeader header = 2;
    repeated Message_MapPos normal_pos_list = 3;              //普通点
    repeated Message_MapLine normal_line_list = 4;            //普通线
    repeated Message_MapPos normal_pos3d_list = 5;            //普通3d点云
    repeated Message_AdvancedPoint advanced_point_list = 6;   //站点
    repeated Message_AdvancedLine  advanced_line_list = 7;    //禁行线
    repeated Message_AdvancedCurve advanced_curve_list = 8;   //连接线
    repeated Message_AdvancedArea  advanced_area_list = 9;    //高级区域
    repeated Message_PatrolRoute patrol_route_list = 10;      //
    repeated Message_MapRSSIPos rssi_pos_list = 11;           //反光板点
    repeated Message_ReflectorPos reflector_pos_list = 12;    //反光板/反光柱
    repeated Message_tagPos tag_pos_list = 13;                //二维码
    repeated Message_Primitive primitive_list = 14;           //图元
    repeated Message_ExternalDevice external_device_list = 15; //外部设备
    repeated Message_BinLocations bin_locations_list = 16;     //库位

    repeated Message_MapProperty user_data = 100;              //支持地图中自定义一些属性
}

json转proto

//json转proto
    Message_Map msgMap ;
    std::string str = fileByteArray.toStdString();
    google::protobuf::util::JsonParseOptions json_parse_option;
    json_parse_option.ignore_unknown_fields = true;
    google::protobuf::util::JsonStringToMessage(str, &msgMap, json_parse_option);

protobuf转json


//protobuf转json
    google::protobuf::util::JsonOptions json_options;
    json_options.always_print_primitive_fields = false;
    std::string json_buffer;
    google::protobuf::util::MessageToJsonString(msgMap, &json_buffer, json_options);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值