草庐IT

protobuf序列化

全部标签

go - 如何使用 golang 在编译时不知道其类型的情况下解析 protobuf3 消息?

这是一个场景:您正在golang中实现一个通用组件,该组件可以与任何类型的原型(prototype)消息(二进制序列化)一起使用,并且需要在编译时不知道其类型的情况下反序列化二进制原型(prototype)数据。例如,我在编写一个通用的kafkajsonarchiver时遇到了这个问题,该组件将:从配置中接收消息类型(字符串)和kafka主题的名称需要在运行时创建二进制->内存反序列化器和内存->json序列化器。如何从消息名称中获取二进制字节的反序列化器? 最佳答案 golang原型(prototype)库有一个用于此目的的辅助实

go - 如何在 GoLang 中使用 GOB 编码序列化嵌套结构?

我有几个示例嵌套结构,需要序列化它们。我正在使用encoding/gob库,它将结构数据转换为字节,使用encoding/base64库将字节转换为可读的base64格式。但是,当我运行我的示例代码时,我收到了一个serializationerror错误。我不明白为什么会发生这种情况以及如何解决这个问题。我按照这个例子:Golangserializeanddeserializeback代码如下:主要包import("bytes""encoding/base64""encoding/gob""errors""fmt")typeHellostruct{greetingstring}type

go - 如何将 prpBytes(描述​​中的链接 src)(ProposalResponsePayload protobuf 消息)反序列化为原始对象

我对plugin.go中的方法有疑问,发现here在Hyperledger结构库中。//Endorsesignsthegivenpayload(ProposalResponsePayloadbytes),andoptionallymutatesit.//Returns://TheEndorsement:Asignatureoverthepayload,andanidentitythatisusedtoverifythesignature//Thepayloadthatwasgivenasinput(couldbemodifiedwithinthisfunction)//Orerroro

json - 如何解析/反序列化动态 JSON

场景:考虑以下是JSON:{"Bangalore_City":"35_Temperature","NewYork_City":"31_Temperature","Copenhagen_City":"29_Temperature"}如果您注意到,数据的结构方式没有提到City/Temperature的硬编码键,它基本上只是值。问题:我无法解析任何动态的JSON。问题:有人能找到解决这种JSON解析的方法吗?我试过go-simplejson,gabs&默认encoding/json但没有运气。注意:以上JSON仅供示例。而且有很多应用程序正在使用当前的API,所以我不想更改数据的结构。我的

go - golang protobuf编译中指定基础包

我有golang包github.com/user/protoapp,在这个包中我有包含protobuf文件的文件夹proto。github.com/user/protoapp|-proto|-proto/app1|-proto/app2app1和app2中的proto文件都有对应的包app1和app;来自proto/app1的Proto文件正在从proto/app2导入文件,如import"app2/messages.proto";aftercompillationinapp1.pb.go变成了importapp2并且protoapp编译失败。如何使*.pb.go文件中的导入成为imp

go - 如何将 row.Scan() int32 转换为 Golang gRPC protobuf Enum 字段?

//agent.protomessageAgent{Permissionpermission=1;google.protobuf.Timestampborn_time=2;messagePermission{Typetype=1;enumType{KILLNONE=0;KILLALL=1;DANCE=2;}}}然后将SQL行扫描到代理protobuf结构中://main.govaraproto.Agent........row.Scan(&a.Permission.Type,...)对于默认类型,该权限类型存储为简单的MariaDBINT()value=0。所以,我不能直接扫描它。因此

mongodb - 使用 mongo-go-driver 和接口(interface)将游标反序列化为数组

我使用golang创建了一个api,我想创建一些功能测试,为此我创建了一个接口(interface)来抽象我的数据库。但为此,我需要能够在不知道类型的情况下将游标转换为数组。func(self*KeyController)GetKey(cecho.Context)(errerror){varres[]dto.Keyerr=db.Keys.Find(bson.M{},10,0,&res)iferr!=nil{fmt.Println(err)returnc.String(http.StatusInternalServerError,"internalerror")}c.JSON(http.

json - 如何正确反序列化包含来自 JSON 的顶级数组的 RabbitMQ 消息

我尝试这样做:casemessage:=它工作了一些迭代,而不是因错误解码:JSON输入意外结束和message.Body==nil而失败。但是一切正常,如果JSON不是对象列表([{...},{...},...]而只是单个对象{...}我试过了RmqMessagesstruct{Messages[]RmqMessage}rmqMessages:=RmqMessages{}err:=json.Unmarshal(message.Body,&rmqMessages.Messages)同样的结果我做错了什么? 最佳答案 错误是在ack循

go - grpc protobuf 使用字符串创建新结构

我正在使用微框架开发我的新项目,并且我已经完成了GRPC工作。但是现在,我需要编写与前端交互的网关。实在不想写重复的代码,在pb.go文件中找了一些代码。代码定义了一些结构和初始化函数。如下所示:typeAuthLoginReqstruct{Usernamestring`protobuf:"bytes,1,opt,name=username,proto3"json:"username,omitempty"`Passwordstring`protobuf:"bytes,2,opt,name=password,proto3"json:"password,omitempty"`XXX_NoU

go - 如何使用 ProtoBuf 下载文件

我正在尝试通过浏览器直接实现文件下载。我们公司使用ProtocolBuffer作为数据通信格式。那么打开网页后如何下载文件呢?我尝试使用ProtocolBuffer的bytes和stream。但是结果是{"result":{"data":"Cw4ODg4ODgsMCw4ODg4ODgsMTUwMCwwLDE1MDAsNDAwMDAsMTAwMDAsMzAwMDAKMDMvMTEvMjAxNSxVbmtub3duIEl0ZW0sUHJlIFJvbGwgVmlkZW8gKG1heCAwOjMwKSw2MDAwMCwzMTAwMCwyOTAwMCw1MDAwMCwyNDAwMCwyNjAwM