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

cotxawn7  于 2023-11-14  发布在  Go
关注(0)|答案(1)|浏览(174)

我想将protobuf any type转换为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"}

deyfvvtc

deyfvvtc1#

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

相关问题