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.
- Kategorija
- Alatke za programere
- Pokretanja
- U vašem pregledaču
- Trošak
- Besplatno · bez registracije
- Dostupnost
- Spremno za upotrebu
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
- Nalepite JSON objekat ili niz, na primer odgovor API-ja.
- Imenujte tip najvišeg nivoa i izaberite zasebne ili ugnježdene strukture.
- 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