Razvoj / JSON

JSON u Go strukturu

Nalepite JSON primer i dobićete definicije Go struktura sa eksportovanim nazivima polja, početnim skraćenicama koje Go linteri očekuju i json oznakama, spremne za kopiranje u kod.

JSON u Go strukturu: Konverter čita JSON u vašem pregledaču i ispisuje strukturu za svaki objekat. Ključevi postaju eksportovani CamelCase nazivi sa početnim skraćenicama kao što su ID, URL i HTTP napisanim velikim slovima, u skladu sa preporukama alata golint, a svako polje zadržava svoj originalni ključ u json oznaci, formatiranoj kao što bi je formatirao gofmt. Objekti u nizu se spajaju, pa ključ koji nedostaje u nekim objektima dobija omitempty, a ključ koji je ponekad null postaje pokazivač. Celi brojevi postaju int64, osim ako se na istom mestu pojavi decimalni broj; tada postaju float64. Radi 100% lokalno u vašem pregledaču, bez otpremanja datoteka na server.

Pokretanja
U vašem pregledaču
Trošak
Besplatno · bez registracije
Dostupnost
Spremno za upotrebu
JSON u Go strukturuLokalna obrada

U potpunosti radi u vašem pregledaču

Pokreni

type User struct {
	ID        int64    `json:"id"`
	UserName  string   `json:"user_name"`
	AvatarURL string   `json:"avatar_url"`
	Score     float64  `json:"score"`
	Tags      []string `json:"tags"`
	Address   Address  `json:"address"`
}

type Address struct {
	City    string `json:"city"`
	ZipCode string `json:"zip_code"`
}

Ključevi koji nedostaju u nekim objektima niza dobijaju omitempty; ključevi koji su ponekad null postaju pokazivači. Proverite tipove u dokumentaciji svog API-ja: uzorak prikazuje samo ono što sadrži.

Od primera do tipa

Go dekodira JSON u strukture pomoću encoding/json, koji svaki ključ povezuje sa poljem preko njegove json oznake ili, kada oznaka ne postoji, prema nazivu bez obzira na velika i mala slova. Popunjavaju se samo izvezena polja, ona koja počinju velikim slovom, zbog čega je svako polje ovde napisano velikim početnim slovom i u svojoj oznaci zadržava originalni ključ.

Uzorak samo pokazuje šta sadrži. Lista korisnika u kojoj jednom nedostaje imejl govori konverteru da je imejl opcionalan; jedan objekat to ne može da pokaže. Ako ih imate, nalepite nekoliko reprezentativnih objekata u niz i proverite rezultat u dokumentaciji API-ja. JSON formatiranje pomaže da najpre uočite strukturu dugog odgovora.

Drugi jezici i šeme

Isti uzorak može postati skup TypeScript interfejsa pomoću konvertera JSON u TypeScript, za front end koji čita isti API, ili JSON Schema za proveru podataka na granici sistema.

Kako se koristi

  1. Nalepite JSON objekat ili niz, na primer odgovor API-ja.
  2. Imenujte tip najvišeg nivoa i izaberite zasebne ili ugnježdene strukture.
  3. Kopirajte Go kod.

Privatnost i ograničenja

Vaš JSON se konvertuje u vašem pregledaču i nikada se ne otprema.

Srodne alatke

Često postavljana pitanja

Zašto se user_id naziva UserID, a ne UserId?

Go stil piše početne skraćenice u jednom obliku, pa se koriste UserID, APIKey i AvatarURL. Konverter koristi listu početnih skraćenica iz alata golint, lintera koji je popularizovao ovo pravilo.

Kada polje dobija omitempty ili pokazivač?

Kada je uzorak niz objekata, a ključ nedostaje u nekim od njih, polje dobija omitempty, pa ga maršalovanje izostavlja kada je prazno. Kada je ključ null u nekim objektima, polje postaje pokazivač, pa nil može da predstavlja null. Možete dodati omitempty i svakom polju.

Zašto int64 i float64?

JSON ima samo jedan tip broja. Vrednost zapisana bez decimalne tačke postaje int64, a vrednost sa decimalnim delom postaje float64. Ako ID može da bude veći od 2^53 ili je zapravo string u drugom obliku, ručno promenite tip: uzorak prikazuje samo vrednosti koje sadrži.

Šta se dešava sa null vrednostima ili praznim nizovima?

Kada nema dovoljno podataka, polje koje je uvek null ili prazan niz dobija tip any (interface{}), koji prihvata bilo koju vrednost. Zamenite ga stvarnim tipom kada ga budete znali.

Besplatan alat · pokretanja: u vašem pregledaču · nalog nije potreban