问题标签 [proto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5303 浏览

grpc - 将 protobuf 映射表示为 json

我正在使用基于 protobuf.js 的 grpcc 来测试我的 grpc 服务 API

我的.proto文件:

我尝试了以下 json 正文来发送请求:

但这会产生以下错误:

如何正确地将 protobuf 映射表示为 json?

0 投票
0 回答
93 浏览

python - 关于 Protobuf PrintField() 的说明

我正在尝试使用此处找到的 Google Protobuf API ,但我在使用带有以下信息的内置 PrintField() 方法时遇到了问题:

PrintField(字段,值,出,缩进=0,as_utf8=False,as_one_line=False)

打印单个字段名称/值对。对于重复的字段,该值应该是单个元素。

合并我的消息后,我可以打印出完全合并的布局。但是,我想要特定的字段/值对,我有点不确定如何去做,因为我找不到任何完整的互联网示例。

我尝试了以下方法:

proto.PrintField(1, 1, cStringIO.StringIO()) , proto.PrintField('field1', 'subfield', cStringIO.StringIO())

我的消息如下所示: message field1 {subfield = 1;}

这样运行会产生以下错误:“AttributeError: 'int' object has no attribute 'is_extension'” 这在两种情况下都是相同的,唯一的变化是 'int' 或 'string'。

0 投票
0 回答
392 浏览

c++ - 如何读取 Bazels 二进制构建事件协议文件?

我想用 Bazel(基于 Bazel 的构建)实现编译器警告的获取。我知道有些文件已经可以用于此。这些文件位于:

$PROJECT_ROOT/bazel-out/_tmp/action_outs/

并命名为 stderr-XY。

Bazel 能够将所有构建事件保存在指定文件中。请注意,目前(Bazel 0.14)该指定文件支持 3 种格式,它们是:文本文件、JSON 文件和二进制文件。这个问题只与二进制文件有关。

如果我正确理解了Google 的协议缓冲区,那么它们的实现和工作流程是:

  1. 您可以通过在 .proto 文件中定义协议缓冲区消息类型来指定您希望序列化信息的结构方式。
  2. 一旦定义了消息,就可以在 .proto 文件上运行应用程序语言的协议缓冲区编译器 (protoc) 以生成数据访问类。
  3. 在项目中包含生成的文件并在代码中使用生成的类。使用它意味着填充、序列化和检索协议缓冲区消息(即,对于我使用的编程语言 C++,可以对此类任务使用SerializeToOstreamParseFromIstream方法)

结束这个问题:

如此处所述 “通过指定选项 --build_event_binary_file=/path/to/file,让 Bazel 将协议缓冲区消息序列化到一个文件中。该文件将包含序列化的协议缓冲区消息,每条消息都是长度分隔的。”

我没有看到避免这样一个事实的方法,即想要使用 Bazel 的功能在二进制文件中编写构建事件的开发人员需要知道“格式”,或者更简洁地说类架构来读取该二进制文件。我在这里错过了什么吗?所有这些都可以做到吗?如何做到?

另外,我尝试使用protoc --decode_raw < bazelbepbinary.bin它,它说:

无法解析输入。

所有这些都是在 Ubuntu 16.04 上完成的,目前我不确定 GCC 版本是什么,但是当我必须访问该信息时,我会在问题中添加 GCC 版本。

我的问题是:是否可以仅捕获反映构建警告的那些构建事件(不使用某种过滤器,例如grep在生成的文件上?)我已阅读文档并使用:

bazel help build --long | grep "relevant_build_event_protocol_keywords"

并且无法在 API 中找到类似的内容。

0 投票
1 回答
568 浏览

python - 从 protos 编译 grpc python 代码的问题

我正在使用 python 2.7.6 版和 grpcio 1.12.0 版。我有一个带有消息定义的原型,其中包含类似这样的枚举

现在当我尝试使用命令编译时

我收到类似这样的错误消息

是因为python和grpcio版本吗?

0 投票
1 回答
455 浏览

java - Json 文件到原型

我有一个 json 文件,我想将它转换为 proto java 文件。

有什么直接的方法吗?

我曾尝试将文件读入字符串,然后将字符串转换为原始消息,但未能这样做,我不断收到

JsonFormat.parser().usingTypeRegistry(TypeRegistry.getEmptyTypeRegistry()).merge(jsonConfig, messageBuilder);

这是我的json:

0 投票
1 回答
7335 浏览

protocol-buffers - 如何打开/查看 .proto 文件扩展名

我正在开发一个开源项目(https://github.com/google/science-journal/tree/master/OpenScienceJournal)。有了这个应用程序,我可以记录一个实验。记录的实验以 .proto 扩展名存储。我试图编译它们以生成类但失败了。

有没有办法打开这种文件?

0 投票
1 回答
579 浏览

go - Twirp 不适用于原型

我似乎无法正确安装 twirp 以使用 protobuf。

是我在编译和创建我的 twirp 文件时尝试执行的命令,但是我收到以下错误:

我的 .bashrc 已经为 Golang 提供了这两行:

任何解决此问题的帮助将不胜感激,谢谢。

0 投票
1 回答
97 浏览

netlink - netlink ipset 列表响应格式

我正在研究 golang netlink ipset 控件库。

一切正常,除了我不知道如何解析我从 netlink 获得的 list 命令的答案。

我得到的数据显然是我正在寻找的。

但我找不到格式的规范!

谁能指出我正确的文档?

谢谢

0 投票
2 回答
148 浏览

java - OLP Protobuf 模式的命名约定

我正在尝试使用 maven 原型将我们现有的一些架构迁移到 OLP。包名应该是什么样的命名约定?我们正在讨论它应该是“com.here.hdlm.protobuf.schema”还是“com.here.schema.hdlm.protobuf”。或者我们甚至应该从名称中跳过 protobuf。

谢谢。

0 投票
1 回答
665 浏览

java - 在 Java 中使用 proto3 时,对象中的长值未正确序列化和反序列化

我正在尝试使用 proto3 序列化和反序列化 java 中的对象。这是我在 proto 中的对象的样子

这是我在 java 中的序列化和反序列化的样子

我的输出如下

当我尝试使用 ByteString 和 utf-8 路由进行序列化和反序列化时,我哪里出错了?

谢谢!