当前位置: 首页 > 知识库问答 >
问题:

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

虞正业
2023-03-14

我目前正在研究Google协议缓冲区,需要生成动态消息。我已经有了。proto文件定义如下所示。

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

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

共有1个答案

谷梁智
2023-03-14

我想你是在问:“有没有一种方法可以在运行时动态解析文本、proto文件来获取描述符。”

<代码>。proto解析器是用C编写的。它可以在libprotoc库中找到。所以。理论上,您可以围绕此编写一个JNI包装器,以便在运行时进行解析。然而,《代码》没有(官方)纯Java解析器。proto文件。

 类似资料:
  • 我正在使用snmp4j开发snmp管理器。我需要读取MIB文本文件并生成相应的XML文件。是否有任何SNMP4j库可用于解析Mib文本文件并获取每个对象的数据。如果snmp4j不能解决我的问题,是否有其他类似的开源可用? 谢谢

  • 我意识到这个问题有点复杂,但我本质上想解析一个ANTLR4语法(一个实际的.g4文件),然后根据语法生成文档和其他工件(不是语法实例)。 例如,考虑包含以下规则的示例Java语法: 我希望能够解析Java。g4文件并生成说明“编译单元包含可选的packageDeclaration、0个或多个importDeclarations和0个或多个typeDeclarations”的文档。或者,我可能希望生

  • 我基于thymeleaf模板创建了一个pdf文件,实际上我正在使用模板分解器flying Discer将文件写入输出流,但由于我无法访问前端以定义每次客户端需要时生成的摘要内容,我认为最好在服务器端生成pdf文件。所以我的问题是: 有没有办法获取写入数据的输出流,并将其转换为动态写入,这样就不会在本地存储中创建数据 这是我业务逻辑的一部分: 我在控制器中使用它,在响应实体中使用attachemen

  • 文件描述符 Linux很重要的设计思想就是一切皆文件,网络是文件,键盘等外设也是文件,很神奇吧?于是所有资源都有了统一的接口,开发者可以像写文件那样通过网络传输数据,我们也可以通过/proc/的文件看到进程的资源使用情况。 内核给每个访问的文件分配了文件描述符(File Descriptor),它本质是一个非负整数,在打开或新建文件时返回,以后读写文件都要通过这个文件描述符了。 应用 我们想想操作

  • 文件描述符接口 函数 int  fd_new (void)   分配文件描述符   struct dfs_fd *  fd_get (int fd)   获取文件描述结构   void  fd_put (struct dfs_fd *fd)   放置文件描述符   int  fd_is_open (const char *pathname)   判断文件是否已被打开   int  select (

  • 问题内容: 我有一个yaml文件,当前写为: 但是,此yaml文件经常更改,因此每次可以使用不同的值添加新条目: 我从使用gopkg.in/yaml.v2包开始就知道,如果所有值都相同,我可以解析yaml文件,例如: 在上面的示例中,它仅适用于密钥/狗密钥,而不适用于其他密钥。 当新值经常添加到yaml文件中时,如何在Go中执行此操作? 谢谢 问题答案: 如果您现在不精确的结构,则应该使您的结构看