pb文件byte[],pb的java对象,jsonString 之间转化

如何将.proto通过命令转换成.java文件

首先上github下安装压缩包:https://github.com/google/protobuf/releases
下载:protoc-3.11.4-win64.zip压缩包
样例地址:https://blog.csdn.net/qq_33546747/article/details/53256891
1、先从网上下载protobuf的压缩包
2、解压缩包到protobuf-tool文件,得到一个include文件夹和一个bin文件夹,bin里面包含protoc.exe
3、将.proto文件放在文件夹bin下面和protoc.exe同一级别
4、打开命令行windows+r  输入cmd
5、切换文件所在的盘                             F:
6、切换到protoc.exe所在的文件夹         cd F:\protobuf\protobuf-tool\bin
7、执行.proto文件                                protoc.exe --java_out=./  rticinfo.proto
8、生成的.java文件生成在bin文件夹下的rticinfo.proto文件头中设置位置,如下:
    rticinfo.proto文件头中指定
    // 如果使用此注释,则使用proto3; 否则使用proto2
    syntax = "proto3";
    // 生成类的包名
    option java_package = "com.autoai.ms.tmc.grab.worker.bean";
    // 生成的数据访问类的类名,如果没有指定此值,则生成的类名为proto文件名的驼峰命名方法
    option java_outer_classname = "CityInfoPB";

依赖

<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java-util</artifactId>
    <version>3.8.0</version>
</dependency>

pb文件byte[] 转 pb的java对象

// 从地址中获取数据
byte[] zipByte = getUrlRespPb(url);
// 路况pb文件进行解压
byte[] bytePb = ZipUtil.uncompressByte(zipByte);
// pb文件转成对象
CityInfoPB.CityInfo cityInfo = CityInfoPB.CityInfo.parseFrom(bytePb);

pb的java对象 转 jsonString

// 将pb的java对象转成String类型的json
String jsonString = JsonFormat.printer().includingDefaultValueFields().print(cityInfo);

jsonString 转 pb的java对象

String jsonString= "XXXX";
// 创建pb对象
CityInfoPB.CityInfo.Builder builder = CityInfoPB.CityInfo.newBuilder();
// 将jsonString转成pb对象
JsonFormat.parser().merge(jsonString, builder);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值