Sviluppatore / JSON
JSON a struct Go
Incolla un esempio JSON e ottieni definizioni di struct Go con campi esportati, gli inizialismi attesi dai linter Go e tag json, pronti da incollare nel codice.
JSON a struct Go: Il convertitore legge il JSON nel browser e crea una struct per ogni oggetto. Le chiavi diventano nomi esportati in CamelCase, con inizialismi come ID, URL e HTTP in maiuscolo, come raccomanda golint; ogni campo conserva la chiave originale in un tag json, formattato come farebbe gofmt. Gli oggetti in un array vengono uniti: una chiave assente in alcuni di essi riceve omitempty, mentre una chiave che a volte è null diventa un puntatore. I numeri interi diventano int64, a meno che nella stessa posizione non compaia un numero decimale, nel qual caso diventano float64. Funziona al 100% localmente nel browser, senza caricare file sul server.
- Categoria
- Strumenti per sviluppatori
- Esecuzioni
- Nel browser
- Costo
- Gratuito · senza registrazione
- Disponibilità
- Pronto all'uso
Funziona interamente nel browser
Vai
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"`
}Le chiavi mancanti in alcuni oggetti di un array ricevono omitempty; le chiavi che a volte sono null diventano puntatori. Verifica i tipi nella documentazione della tua API: un esempio mostra solo ciò che contiene.
Da un esempio a un tipo
Go decodifica JSON in struct con encoding/json, associando ogni chiave a un campo tramite il relativo tag json oppure, in assenza di tag, tramite il nome senza distinguere maiuscole e minuscole. Vengono compilati solo i campi esportati, cioè quelli che iniziano con una lettera maiuscola: ecco perché ogni campo qui è scritto con l'iniziale maiuscola e conserva la chiave originale nel proprio tag.
Un esempio mostra solo ciò che contiene. Un elenco di utenti in cui a uno manca l'email comunica al convertitore che email è opzionale; un singolo oggetto non può farlo. Quando possibile, incolla in un array diversi oggetti rappresentativi e verifica il risultato con la documentazione dell'API. Il formattatore JSON aiuta prima a individuare la struttura di una risposta lunga.
Altri linguaggi e schemi
Lo stesso esempio può diventare interfacce TypeScript con il convertitore da JSON a TypeScript, per un front end che legge la stessa API, oppure uno schema JSON per validare i payload all'ingresso del sistema.
Come usarlo
- Incolla un oggetto o un array JSON, ad esempio una risposta API.
- Assegna un nome al tipo principale e scegli se usare struct separate o annidate.
- Copia il codice Go.
Privacy e limitazioni
Il tuo JSON viene convertito nel browser e non viene mai caricato.
Strumenti correlati
Domande frequenti
Perché user_id diventa UserID e non UserId?
Lo stile Go scrive gli inizialismi usando un'unica combinazione di maiuscole e minuscole, quindi UserID, APIKey e AvatarURL. Il convertitore usa l'elenco degli inizialismi di golint, il linter che ha diffuso questa regola.
Quando un campo riceve omitempty o diventa un puntatore?
Quando l'esempio è un array di oggetti e una chiave è assente in alcuni di essi, il campo riceve omitempty: durante la conversione in JSON viene quindi omesso se vuoto. Quando una chiave è null in alcuni oggetti, il campo diventa un puntatore, così nil può rappresentare null. Puoi anche aggiungere omitempty a ogni campo.
Perché int64 e float64?
JSON ha un unico tipo numerico. Un valore scritto senza virgola decimale diventa int64, mentre qualsiasi valore con una parte frazionaria diventa float64. Se un ID può superare 2^53 o in realtà è una stringa mascherata, modifica manualmente il tipo: un esempio mostra solo i valori che contiene.
Cosa succede con null o gli array vuoti?
Quando non ci sono informazioni sufficienti, un campo che è sempre null o un array vuoto riceve il tipo any (interface{}), che accetta qualsiasi valore. Sostituiscilo con il tipo reale quando lo conosci.
Strumento gratuito · nel browser esecuzioni · senza account