有没有办法在将proto.Any转换为json时不包含@type?

问题描述 投票:0回答:1

我想将 protobuf 任何类型 转换为 json。但 json 包含

@type
字段。有没有办法可以将它从结果 json 中排除?

例如,我有一个像这样的原型定义

message Cluster {
  string name = 1;
}

以及以下代码

cluster := &pb.Cluster{Name: "123"}
c, _ := anypb.New(cluster)
jsonBytes, _ := protojson.Marshal(c)
log.Println(string(jsonBytes))

即将打印

{"@type":"type.googleapis.com/Cluster", "name":"123"}

有没有办法可以排除

@type
字段,这样我就可以得到这样的东西?

{"name":"123"}
go protocol-buffers
1个回答
0
投票

如果你想使用 ANY 作为字段类型,JSON 中的标签 @type 是必要的 protobuf 文档 我建议你使用 Struct 作为字段类型,就像这样 example 并且不要使用 ANY

© www.soinside.com 2019 - 2024. All rights reserved.