协议缓冲区是一种语言中立且与平台无关的方式,以高效且可扩展的格式编码结构化数据。 Google对几乎所有内部RPC协议和文件格式都使用Protocol Buffers。它也是开源gRPC框架使用的默认数据编码。
我们序列化proto文件(proto3)并通过nats发送,如下所示。 我们订阅并接收来自发送端的数据,我们将此数据转换为 json,并将消息转换为 json,如下所示。 std::字符串
.Net 我的 protobuf 文件: 消息结果{ 重复的 ListOfStrings 列表 = 1; } 消息字符串列表 { 重复字符串string = 1; } 我有一个具有此属性的类: 公开名单 .Net 我的protobuf文件: message Result{ repeated ListOfStrings lists = 1; } message ListOfStrings { repeated string strings = 1; } 我有一个具有此属性的类: public List<List<string>> ListOfLists { get; set; } Protobuf 编译器生成 RepeatedField 集合,当我尝试将此集合传递给 ListOfLists.AddRange() 时,我收到此错误: cannot convert from 'Google.ProtobufCollections.RepeatedField<gRPC.ListOfStrings>' to 'System.Collection.Generic.IEnumerable<System.Collections.Generic.List<string>> 如何处理? A List<List<string>> 与有 字符串的事物列表不同。您可能需要: foreach (var list in outerList) { var inner = new ListOfStrings(); inner.Strings.AddRange(list); obj.Lists.Add(inner); } 你可以尝试一下CopyTo的方法吗,doc 示例伪代码: Result result = ... foreach(var list in result.list) { string[] arr = new string[list.Count]; list.CopyTo(arr,0); ListOfLists.Add(arr.ToList()); } 使用 C# 范围运算符,您可以简单地编写如下内容: List<TargetType> list = [.. result.Lists]; 其中 result.Lists 的类型为 RepeatedField
我有一个解决方案,我需要能够将多个 JSON 对象记录到一个文件中。本质上是每天制作一个日志文件。从单个文件写入(然后读取)这些内容的最简单方法是什么?...
在 Visual Studio 2022 中使用 .proto 文件并编写 C# 服务时找不到类。我该如何解决这个问题?
我在我的C# ASP.NET Core gRPC Service项目中写了一个protobuf文件,试图按照示例进行操作,现在我需要为其编写代码,但似乎找不到类名。我
protobuf 库在消息实例化时抛出 FatalException
我正在从源代码编译 protobuf 3.6.1 并链接到针对 Ubuntu 16.04 的可执行文件。一旦创建任何消息类型的对象,库就会抛出异常......
我正在尝试序列化数据,该数据由以下 protobuf 文件指定: 语法=“proto3”; 包efficient_servers.protobuf; 消息请求{ 其中一个消息 { 步行步行 = 1...
Dockerfile + Protoc 在 Windows 上安装
实现: 我已在 Windows 上使用二进制文件成功安装了协议 通过在环境变量中使用以下路径, C:\Program Files\protoc-26.1-win64 中 失败的: 但是,我是你...
有人能给我一个在 protobuf-c 中使用重复子消息打包\解包消息的示例吗? 关于此事的官方文档是空的。
我在测试动态原型库的ABI兼容性时遇到了内存分配的问题。 您使用什么版本的 protobuf 以及什么语言? 版本:v3.19.6 语言:C++ 什么操作
Arena::CreateMessage 和 Arena::CreateMaybeMessage 之间的区别
当我在 Arena 中使用 Protocol Buffer 时,这两个函数有什么区别 谷歌::protobuf::Arena::CreateMaybeMessage(); 和 谷歌::protobuf::Arena::CreateMessa...
我需要帮助将 .textpb 转换为带有嵌套输入的 json
我需要帮助将 .textpb 转换为带有嵌套输入的 json。 我使用 python 尝试了各种工具,但不起作用,因为 .textpb 或 .pb 是嵌套的,因此输出数据在 json 中不正确 请找到该文件
protoc --decode 使用的二进制到文本编码是什么?
我正在查看 protoc --decode 命令的输出,我无法理解它遇到字节时使用的编码: 数据 { 图片:“���� JFIF […]��4G…
如何拥有可在多个 C# NuGet 中使用的通用 protobuf 消息?
我正在尝试创建一个通用的 protobuf 消息,该消息将在多个 C# NuGet 中使用,有点像消息头。 我已将常见的原始文件保存在另一个存储库中,并且正在使用...
我有一个网络应用程序,可能无法访问服务器。客户端在空闲时间每 30 秒发送一次字符串 ping 通过 TCP 连接到服务器,以便...
在 Windows 上的 VC++ 项目中使用 Protobuf 的正常、正确的方法是什么?
我是 C++ 新手,正在编写一个简单的程序,该程序使用 protobuf 定义 (.proto) 作为其工作的一部分。我来自 C#,在理解如何在 VC++ 专业版中使用 protobuf 时遇到了很多困难...
使用proto buff(.proto文件)自动生成代码时导入错误的包
所以我正在开发一个使用 proto buff 的项目,我需要使用 .proto 文件生成 golang 代码。 我的问题是,当我生成 golang 代码时,它导入了错误的包。 这就是我的
我对协议缓冲区和Python比较陌生,所以我偶然发现了下面描述的问题。 (我对这个问题做了很多研究,但没有找到解决方案) 我的鳕鱼的相关等级制度...
java中有没有办法获取protobuf的大小(以字节为单位)?我知道存在 getSerializedSize 函数,但我不知道这是否准确地表示了通过无线网络发送的内容...
将 Spark DataFrame 转换为稍微不同的案例类?
我在 HDFS 中有一些数据位于 parquet-protobuf 中。 由于一些项目限制,我想使用 Spark DataFrame 读取该数据(简单),然后转换为略有不同的案例类...
protoregistry.GlobalTypes 如何加载类型?
我正在尝试将 Envoy 配置从 JSON 解组到 Go 原型结构。 JSON 有一个包含类型信息的 Any 字段。我知道 protojson 以某种方式神奇地确定了......中的 proto 定义