From a2b9b3b70a4a5a1eb27ad082fb9794da9ed151c5 Mon Sep 17 00:00:00 2001 From: Nathan Perriolat Date: Fri, 24 Jan 2025 14:40:37 +0100 Subject: [PATCH] feat: add proper json tag in oneof --- cmd/protoc-gen-go/internal_gengo/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/protoc-gen-go/internal_gengo/main.go b/cmd/protoc-gen-go/internal_gengo/main.go index f218cf9bf..8f26fbe85 100644 --- a/cmd/protoc-gen-go/internal_gengo/main.go +++ b/cmd/protoc-gen-go/internal_gengo/main.go @@ -390,6 +390,7 @@ func genMessageField(g *protogen.GeneratedFile, f *fileInfo, m *messageInfo, fie if m.isTracked { tags = append(tags, gotrackTags...) } + tags = append(tags, [2]string{"json", string(oneof.Desc.Name()) + ",omitempty"}) g.Annotate(m.GoIdent.GoName+"."+oneof.GoName, oneof.Location) leadingComments := oneof.Comments.Leading @@ -886,6 +887,7 @@ func genMessageOneofWrapperTypes(g *protogen.GeneratedFile, f *fileInfo, m *mess goType, _ := fieldGoType(g, f, field) tags := structTags{ {"protobuf", fieldProtobufTagValue(field)}, + {"json", fieldJSONTagValue(field)}, } if m.isTracked { tags = append(tags, gotrackTags...)