java - 在运行时动态解析 .proto 文本文件以生成描述符

标签 java protocol-buffers protoc proto3

我目前正在研究 Google Protocol Buffers,需要生成动态消息。我已经定义了如下所示的 .proto 文件。

message TSInbound
{
  string id = 1;
  map<string,string> state = 2;
  map<string,string> reading =3;
}

据我所知,我可以使用文件描述符集来创建动态消息。但是,这将涉及使用编译器生成 desc 文件。我想在不编译 .proto 文件的情况下生成描述符。有没有一种方法可以使用自定义的 .proto 文件而不使用 protoc 来动态创建消息?

最佳答案

我想你在问:“有没有办法在运行时动态解析文本 .proto 文件以获取描述符。”

.proto 解析器是用 C++ 编写的。它作为库 libprotoc.so 可用。从理论上讲,您可以围绕它编写一个 JNI 包装器以在运行时进行解析。但是,.proto 文件没有(官方的)纯 Java 解析器。

关于java - 在运行时动态解析 .proto 文本文件以生成描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36074849/

相关文章:

java - 使用函数式编程在java中关闭文件

java - 我该怎么做 "one-many"关系?

c++ - grpc编译错误protobuf 3.2.0(文件是用旧版本的protoc生成的)Ubuntu 16.04

go protobuf : Cannot find package "." in github. com/gogo/protobuf/proto 和 m.TimeStamp.MarshalToSizedBuffer 未定义

c++ - 在 Linux 上运行自定义协议(protocol)插件的原因

java - 如何在HistoricalMoment类中调用increment方法()?

java - 带有随机键的 JSON 到 Java 对象

c# - 手动解码 CodedInputStream 上的 Size

web-services - 带有 loadrunner 的谷歌 Protocol Buffer

java - 将敏感信息加载到 Protocol Buffer 的最安全方法