@@ -265,8 +265,12 @@ func convertEnums(ctx Context, doc tidl.Document) ([]Enum, error) {
265265 }
266266 var fields []EnumField
267267 for i , f := range t .Fields {
268+ fieldName , err := getJSONName (f .Name , f .Annotations )
269+ if err != nil {
270+ return nil , err
271+ }
268272 fields = append (fields , EnumField {
269- Name : f . Name ,
273+ Name : fieldName ,
270274 Value : int64 (i ),
271275 })
272276 }
@@ -634,8 +638,9 @@ func parseBinding(arr []tidl.Annotation) (*Binding, error) {
634638func genFieldTag (fieldName , typeName string , arr []tidl.Annotation , binding * Binding ) (string , error ) {
635639 var tags []string
636640
637- var jsonTag string
638- var jsonName = fieldName
641+ var jsonName string
642+ var omitZero bool
643+ omitEmpty := strings .HasPrefix (typeName , "*" )
639644
640645 // Generate JSON tag
641646 if a , ok := tidl .GetAnnotation (arr , "json" ); ok {
@@ -646,27 +651,30 @@ func genFieldTag(fieldName, typeName string, arr []tidl.Annotation, binding *Bin
646651 if s == "" {
647652 return "" , fmt .Errorf ("annotation json value is empty" )
648653 }
649- jsonTag = strings .Trim (s , "\" " ) // Remove quotes
650- }
651-
652- omitZero := false
653- omitEmpty := strings . HasPrefix ( typeName , "*" )
654-
655- for s := range strings . SplitSeq ( jsonTag , "," ) {
656- switch s = strings . TrimSpace ( s ); s {
657- case "omitempty" :
658- omitEmpty = true
659- case "non- omitempty" :
660- omitEmpty = false
661- case "omitzero " :
662- omitZero = true
663- default :
664- if v , ok := strings . CutPrefix ( s , "name=" ); ok {
665- jsonName = strings . TrimSpace ( v )
654+ s = strings .Trim (s , "\" " ) // Remove quotes
655+ for i , v := range strings . Split ( s , "," ) {
656+ v = strings . TrimSpace ( v )
657+ if i == 0 {
658+ if v != "" {
659+ jsonName = v
660+ }
661+ continue
662+ }
663+ switch v {
664+ case "omitempty" :
665+ omitEmpty = true
666+ case "non-omitempty " :
667+ omitEmpty = false
668+ case "omitzero" :
669+ omitZero = true
670+ default : // for linter
666671 }
667672 }
668673 }
669674
675+ if jsonName == "" {
676+ jsonName += fieldName
677+ }
670678 if omitEmpty {
671679 jsonName += ",omitempty"
672680 }
0 commit comments