JSON-inndata

Go-utdata

Hva er JSON til Go?

Du har nettopp kalt et REST-API i Postman, svaret er JSON, og du må deserialisere det i Go — men å skrive strukturen manuelt for et dypt nestet svar er virkelig kjedelig. JSON og Go sitt encoding/json-pakke fungerer fint sammen, men Go krever eksplisitte strukturdefinisjoner for hvert nestet objekt. Å glemme et felt eller angi feil type gjør at unmarshal stille returnerer nullverdier. Dette verktøyet genererer hele strukturtreet fra JSON-en din, klart til å lime inn direkte i prosjektet.

Dette verktøyet genererer Go-strukturer fra JSON-en din. Sett strukturnavnet og pakken i konfigurasjonsfeltet. Aktiver JSON-tagger for json:"feltnavn" slik at strukturfeltene korrekt mapper til camelCase- eller snake_case-nøkler. Aktiver pekere for valgfrie eller nullable-felt slik at du kan skille mellom nullverdi og fraværende. Utdataene er klare til å lime inn i prosjektet og bruke med json.Unmarshal().

Konvertering kjører helt i nettleseren din. JSON-en din sendes aldri til en server. Du kan bekrefte dette ved å åpne Nettverk-fanen i nettleseren mens du bruker verktøyet.

Slik bruker du verktøyet

1

Lim inn eller last opp JSON

Kopier JSON-en din og lim den inn i editoren til venstre. Du kan også klikke Last opp for å laste inn en .json- eller .txt-fil fra datamaskinen din. Bruk Eksempel-knappen for å laste eksempeldata hvis du vil teste. I konfigurasjonsfeltet, sett strukturnavnet (f.eks. User) og pakkenavnet (f.eks. models). Aktiver JSON-tagger for json:"nøkkel"-strukturtagger. Aktiver pekere for valgfrie eller nullable-felt.

2

Gå gjennom de genererte strukturene

Høyre panel viser de genererte Go-strukturene. Nestede objekter blir nestede eller separate strukturer. Tabeller blir []Type. JSON-tagger mapper strukturfelt til JSON-nøkler. Bruk json.Unmarshal(data, &v) for å analysere JSON inn i strukturen. Hvis JSON-en din har ugyldig syntaks, fiks det først ved å bruke JSON-formaterer eller JSON-validator.

3

Kopier eller last ned

Bruk Kopier for å legge resultatet på utklippstavlen, eller Last ned for å lagre det som en .go-fil. Lim det inn i Go-prosjektet ditt. Du kan måtte legge til importer eller justere pakkenavn avhengig av prosjektstrukturen.

Eksempler på JSON til Go

Her er et eksempel på generering av Go-strukturer fra et JSON-objekt.

Eksempel: Abonnementspost

JSON-inndata:

Inndata

Generert Go-utdata:

Utdata

Når JSON til Go hjelper

De fleste utviklere trenger dette ved API-integrasjon. Du sender en forespørsel gjennom Postman eller curl, og svaret kommer som JSON. Å lime inn her gir deg typede strukturer du kan bruke umiddelbart med encoding/json. For å trekke ut spesifikke verdier fra store svar fungerer jq godt fra kommandolinjen.

Konfigurasjonsfiler er et annet vanlig tilfelle. En config.json eller settings.json med nestede objekter trenger ofte en Go-struktur for typesikker tilgang. Hvis du trenger å slå sammen to JSON-filer først, finnes det et eget JSON Merge-verktøy for det.

Databaseeksporter fra MongoDB, Firestore eller CouchDB er typisk store JSON-blober. Å kjøre dem gjennom her hjelper deg med å forstå dokumentstrukturen og generere Go-strukturer for importskript eller spørringer.

Ofte stilte spørsmål

Hvordan genererer jeg Go-strukturer automatisk fra JSON?

Lim inn JSON i dette verktøyet og det genererer Go-strukturer med en gang. Aktiver JSON-tagger slik at feltnavnene kartlegges riktig til JSON-nøklene. Kopier resultatet til Go-prosjektet ditt — klart til bruk med json.Unmarshal().

Hvorfor trenger Go-strukturer JSON-tagger?

Feltnavn må eksporteres (stor forbokstav) for JSON. JSON bruker ofte camelCase eller snake_case. json:"feltnavn"-taggen forteller encoding/json hvilken JSON-nøkkel som tilsvarer hvilket felt. Uten tagger gjør json.Unmarshal case-insensitiv matching og kan stille overse felt.

Sendes dataene mine noe sted?

Nei. Alt kjører i nettleseren din — JSON-en din forlater aldri enheten din. Du kan bekrefte dette via Nettverk-fanen i nettleseren. Trygt også for produksjonsdata.

Hva med omitempty?

Legg til omitempty i JSON-taggen for felt du ikke vil ha i utdataene når de er tomme: json:"navn,omitempty". Generatoren legger det ikke til som standard — avhenger av bruksområdet, rediger utdataene etter generering.

Når bør jeg bruke pekere for strukturfelt?

Bruk *Type for valgfrie eller nullable felt. Med en peker returnerer et fraværende JSON-felt nil, som du kan sjekke. Uten pekere får du nullverdien og kan ikke avgjøre om feltet manglet eller bare var tomt.

Relaterte verktøy

For Go JSON-håndtering, se encoding/json. For JSON, se JSON-spesifikasjonen og RFC 8259. For en generell oversikt, se MDN JSON. For API-testing, se Postman. For Go-strukturtagger, se Go-spesifikasjonen. Se også jq for JSON-prosessering.