Spring Boot 集成 Protobuf 快速入门 Demo
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.util.JsonFormat;
import com.google.protobuf.util.JsonFormat.Printer;
import example.grpc.MyMessageOuterClass;
public class ProtobufDemo {
public static void main(String[] args) {
// 创建 Protobuf 消息对象
MyMessageOuterClass.MyMessage myMessage = MyMessageOuterClass.MyMessage.newBuilder()
.setId(1)
.setContent("Hello Protobuf")
.build();
// 将 Protobuf 消息序列化为 JSON 字符串
Printer printer = JsonFormat.printer();
String jsonString = "";
try {
jsonString = printer.print(myMessage);
System.out.println("Protobuf message to JSON: " + jsonString);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
// 将 JSON 字符串反序列化为 Protobuf 消息
try {
MyMessageOuterClass.MyMessage myMessageFromJson = MyMessageOuterClass.MyMessage.parseFrom(printer.printTo(myMessage).getBytes());
System.out.println("JSON to Protobuf message: " + myMessageFromJson);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
}
}
这段代码展示了如何在Java中使用Protobuf库来序列化和反序列化一个简单的Protobuf消息。首先,我们创建了一个MyMessage
的实例,并设置了其字段。接着,我们使用JsonFormat
将其序列化为JSON字符串,并打印输出。最后,我们将JSON字符串反序列化回MyMessage
实例,并打印输出。这个过程演示了Protobuf与JSON之间的转换,这在设计需要与前端或其他系统进行数据交换的后端服务时非常有用。
评论已关闭