首先需要先下载适用windowcaozuo系统的protobuf安装包,类似于JDK。
下载地址:https://github.com/protocolbuffers/protobuf/releases
下载如下图所示的安装包
解压后,将bin文件夹添加到环境变量
windows+r输出cmd打开命令行窗口。输入protoc,出现下图表示安装成功
接下来需要打开IDEA安装相应的插件
安装以上两个插件既可以开始操作protobuf相关协议
首先在项目中引入依赖
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.19.0</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.19.0</version>
</dependency>
找到对应的xxx.proto文件放入IDEA项目中,按下图操作既可以生成java实体类。
接下来就是处理byte[]转换为java实体类问题
PassengerInformation.PassengerInformationMsg passengerInformationMsg = PassengerInformation.PassengerInformationMsg.parseFrom(bytes);
对象化转换为json字符串(需要使用上面引入的Protobuf相关jar中类)
/**
* ProtoBuf Builder转换成Json字符串
*
* @param messageOrBuilder
* @return
*/
public static String getStrByBuilder(MessageOrBuilder messageOrBuilder) {
JsonFormat.Printer printer = JsonFormat.printer();
try {
final String print = printer.print(messageOrBuilder);
return print;
} catch (InvalidProtocolBufferException e) {
log.error("Protocol对象转换成JSon字符串错误", e.getStackTrace());
return null;
}
}