DT Dev Tools

JSON till Go — Generera structs

Konvertera JSON till Go-structs online med json-taggar, omitempty, pekartyper för valfria fÀlt och unmarshal-hjÀlpare. Gratis, snabbt och privat i webblÀsaren.

🔒 Körs helt i din webblĂ€sare — ingenting laddas upp

Annons

Generera Go-structs frÄn JSON

Att skriva Go-structs för hand till ett stort API-svar Àr lÄngsamt och felbenÀget. Den hÀr JSON till Go-konverteraren gör det direkt: klistra in ett JSON-exempel sÄ genereras exporterade struct-typer med korrekt skrivna fÀltnamn och json-struct-taggar som kopplar varje fÀlt till dess ursprungliga nyckel. NÀstlade objekt blir egna namngivna structs, arrayer blir slices, heltal och flyttal skiljs Ät som int64 och float64, och ISO 8601-tidsstÀmplar kÀnns igen som time.Time. Resultatet Àr redo för encoding/json utan vidare redigering.

Verktyget drivs av quicktype, som tittar pĂ„ varje element i varje array innan en typ vĂ€ljs. Om ett objekt i en lista har ett fĂ€lt som de andra saknar blir fĂ€ltet en pekare, sĂ„ att nollvĂ€rdet och det saknade vĂ€rdet gĂ„r att skilja Ă„t — en detalj som enklare konverterare med en enda genomgĂ„ng ofta missar.

Alternativ som spelar roll i Go

Ange package-namnet sĂ„ att filen kompilerar dĂ€r du placerar den. Aktivera omitempty nĂ€r du ocksĂ„ serialiserar structs tillbaka till JSON och vill att frĂ„nvarande valfria fĂ€lt ska förbli frĂ„nvarande. Som standard lĂ€gger generatorn till smĂ„ hjĂ€lpfunktioner, Unmarshal
 och Marshal, runt rottypen; markera Structs only om du hellre anropar json.Unmarshal sjĂ€lv och bara behöver typerna. Byt namn pĂ„ rotstructen frĂ„n Root till det domĂ€nnamn du vill ha — till exempel Repository eller WebhookEvent.

SÄ fÄr du bÀsta resultat

Mata konverteraren med ett representativt exempel: en array med flera element, ifyllda valfria fÀlt och nÀstlade objekt som inte Àr tomma. Tomma arrayer och null-vÀrden ger inferensen inget att gÄ pÄ och faller tillbaka pÄ interface{}. NÀr du har klistrat in koden kör du gofmt, granskar numeriska typer dÀr exemplet kanske inte visar hela vÀrdeintervallet och ersÀtter generiska strÀngar med egna typer dÀr ditt API dokumenterar fasta vÀrden. Eftersom all bearbetning sker i webblÀsaren lÀmnar interna data eller kunddata aldrig din dator.

Hur man anvÀnder

  1. Klistra in JSONKlistra in ett API-svar eller valfritt JSON-dokument, eller ladda exemplet.
  2. VÀlj alternativAnge rotstructens namn och paketet, och bestÀm om omitempty och hjÀlpfunktioner ska anvÀndas.
  3. Kopiera structsKopiera Go-koden eller ladda ner en .go-fil och kör gofmt som vanligt.

Vanliga frÄgor

LĂ€ggs json-struct-taggar till?
Ja. Varje fÀlt fÄr en `json:"key"`-tagg som bevarar den ursprungliga JSON-nyckeln, och du kan lÀgga till ,omitempty pÄ valfria fÀlt med en enda kryssruta.
Hur hanteras valfria fÀlt och null?
FÀlt som saknas eller Àr null i vissa exempel blir pekartyper som *string, sÄ att du kan skilja ett saknat vÀrde frÄn ett nollvÀrde.
Vad gör hjÀlpfunktionerna?
Som standard innehÄller resultatet hjÀlpfunktionerna UnmarshalRoot och Marshal. Markera Structs only om du bara vill ha typdeklarationerna.
Skickas min JSON till en server?
Nej. Konverteringen körs i din webblÀsare med quicktype kompilerat till JavaScript; ingenting laddas upp.
Annons