我在这里想做的是:我有一个来自Kafka流的转储,其中以二进制格式存储了未知数量的photobuff记录。我想解码它们并以JSON格式逐个打印到控制台。我已经浏览了整个互联网,但似乎没有明确的答案,从原始二进制文件中读取数据,其中包含未知数量的photobuff记录。我发现了这个:如何解码二进制/原始谷歌protobuf数据,但它与使用protoc对一个已知记录的简单解码有关我已经尝试了以下内容,但我似乎并不完全了解如何使用proto.buffer.go结构,因为我只能看到所有26 kb数据中的第一个值。package mainimport ( "encoding/json" "fmt" "github.com/golang/protobuf/proto" "io/ioutil" "parseRawDHCP/pb")func main() { file, err := ioutil.ReadFile("file") if err != nil { fmt.Printf("unable to read file %v", err) } msg := pb.Msg{} buffer := proto.NewBuffer(file) for { err := buffer.DecodeMessage(&msg) if err != nil { panic("unable to decode message") } marshalledStruct, err := json.Marshal(msg) if err != nil { panic("can't marshalledStruct the data from message") } if err == nil { fmt.Printf("message is: %v", marshalledStruct) continue } }}如果有人能为我指出如何正确地将原始二进制解码为原型,我将不胜感激。
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消
