Klistra in Go till vänster och klicka på "Konvertera" — vi gör JSON av detKlistra in Go-kod

Vad det här verktyget gör

Du har en Go struct med json:"..."-taggar och någonstans en composite literal (order := Order{...}), och du behöver den JSON-form som encoding/json skulle producera. Klistra in båda i vänstra editorn och klicka på Konvertera. Verktyget läser taggarna, tillämpar reglerna för omitempty och -, hanterar nil-pekare och ger dig JSON som matchar det json.MarshalIndent skulle spotta ur sig — du slipper hoppa ut till go run.

Det följer den riktiga marshalling-semantiken i Go, inte någon naiv textersättning. Exporterade fältnamn byts ut mot första delen av json-taggen. omitempty tar bort nollvärden (tom sträng, 0, false, nil, tom slice/map). Taggen - plockar bort fältet helt. Fält i inbäddade (anonyma) structs flyttas upp på samma sätt som encoding/json gör. time.Time kommer ut som en RFC 3339-sträng i RFC 8259-kompatibelt format, och byte-slices ([]byte) kodas till base64.

Numeriska typer följer Go-reglerna: float64 behåller sin precision, int/int64 förblir tal, och en nil-pekare blir JSON null. Slices blir JSON-arrayer; en nil-slice blir också null (inte []), vilket matchar default-beteendet hos Marshal. map[string]V blir ett JSON-objekt. Klistra in flera structs på en gång — varje instans hamnar som en egen top-level-post.

Så här använder du det

Tre steg. Funkar både för en liten struct och en hel <code>types.go</code>-fil.

1

Klistra in din Go (eller testa exemplet)

Släng in struct-definitionerna plus en composite literal (order := Order{...}) i vänstra editorn. En ensam struct, flera structs med inbäddade fält eller en deklaration på package-nivå — allt funkar. Klicka på Ladda exempel för en realistisk startpunkt.

Låt package-raden och import-blocket vara kvar — parsern ignorerar dem. Struct-taggar, method receivers och kommentarer är lugnt. För referens: encoding/json.Marshal-dokumentationen listar varje regel det här verktyget följer. Go-källrepot är värt en titt om du stöter på ett edge case.

2

Klicka på Konvertera

Klicka på den gröna Konvertera-knappen. Verktyget parsar struct-definitionerna, löser upp composite literal, applicerar tagg-reglerna och producerar indenterad JSON.

3

Kopiera JSON-en

Högra panelen fylls med JSON som är klar för en API-request, en testtabell, en config-fil eller en fixture som du laddar med os.ReadFile.

När det faktiskt gör skillnad

Request/response-samples för HTTP-handlers

Du har en request- eller response-struct för en <code>net/http</code>- eller <code>gin</code>-handler. Klistra in den med en literal så får du en JSON-body som du kan skicka med curl eller klistra in i Postman.

Fixtures för table-driven tests

Konvertera en struct-instans från ett table test till en fristående JSON-fil för golden-file testing eller extern tooling.

Kubernetes CRDs och manifest

Gör om en Go struct som representerar en custom resource eller controller-payload till det JSON-format som <code>kubectl apply</code> eller Kubernetes-API:t använder.

Kafka-, NATS- och gRPC-gateway-meddelanden

Serialisera en Go message-struct till JSON för producer-tester, sample-payloads eller dokumentation — utan att dra igång hela pipelinen.

Vanliga frågor

Respekterar den json-struct-taggen?

Ja. Första tagg-värdet byter namn på fältet, omitempty tar bort nollvärden och - exkluderar fältet helt. Det matchar reglerna i encoding/json Marshal-referensen.

Hur hanteras time.Time och []byte?

time.Time formateras som RFC 3339 (t.ex. "2026-03-14T10:30:00Z"), i linje med time.Time.MarshalJSON. []byte base64-kodas som JSON-sträng, vilket är det standardbibliotekets default-beteende.

Och nil-pekare och nil-slices?

En nil-pekare blir JSON null. En nil-slice blir också null (inte []) — det är Go:s default. Vill du ha en tom array, initiera slicen med []T{}.

Flyttas fält från inbäddade (anonyma) structs upp?

Ja. Fält i en inbäddad struct plattas ut i det yttre objektet, såvida inte den inbäddade structen själv har en json-tagg — samma regler som encoding/json tillämpar.

Kan jag klistra in en hel fil med flera structs?

Ja. Varje struct-typ som har en instans i det du klistrar in hamnar som en egen post i JSON:en. Nästlade struct-typer expanderas inline där de används.

Sparas min kod någonstans?

Koden skickas till backend för att konverteras men sparas inte och loggas inte. Som med vilket online-verktyg som helst — kasta ett öga på känslig kod innan du klistrar in.

Andra verktyg du kan behöva

Go till JSON är bara en pusselbit. De här spelar väl ihop med det: