From b0a52de4ea5709152cbffa8a1063b127c970a18c Mon Sep 17 00:00:00 2001 From: pavel Date: Thu, 27 Aug 2026 16:57:12 +0200 Subject: [PATCH] Fix camel case JSON tags --- internal/lang/data_class_test.go | 8 +++++--- internal/lang/generate_go.go | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/lang/data_class_test.go b/internal/lang/data_class_test.go index 84f6242..57a9e0c 100644 --- a/internal/lang/data_class_test.go +++ b/internal/lang/data_class_test.go @@ -30,7 +30,7 @@ func TestGenerateGoDataClassJSONNamingOverride(t *testing.T) { package demo @jsonNaming(camelCase) -data class Account(var availableBalance: Double) +data class Account(var availableBalance: Double, var Type: String) `) if err != nil { t.Fatalf("parse failed: %v", err) @@ -39,8 +39,10 @@ data class Account(var availableBalance: Double) if err != nil { t.Fatalf("generation failed: %v", err) } - if !strings.Contains(string(out), "`json:\"availableBalance\"`") { - t.Fatalf("generated Go missing camelCase tag:\n%s", out) + for _, want := range []string{"`json:\"availableBalance\"`", "`json:\"type\"`"} { + if !strings.Contains(string(out), want) { + t.Fatalf("generated Go missing camelCase tag %q:\n%s", want, out) + } } } diff --git a/internal/lang/generate_go.go b/internal/lang/generate_go.go index c11b976..bc59dfc 100644 --- a/internal/lang/generate_go.go +++ b/internal/lang/generate_go.go @@ -1960,7 +1960,10 @@ func jsonFieldName(name, policy string) string { case "", "snakeCase": return snakeCase(name) case "camelCase": - return name + if name == "" { + return name + } + return strings.ToLower(name[:1]) + name[1:] case "pascalCase": return exportedGoName(name) case "kebabCase":