Vai al contenuto
100% locale

JSON a Struttura Go

Converti un campione JSON in definizioni di struttura Go con tipi e tag dedotti.

Ingresso
Uscita

JSON a Struttura Go

Incolla un campione JSON e questo strumento genererà le definizioni di struttura Go corrispondenti con tag json. Deduce int, float64, string, bool e null per ogni campo, crea strutture denominate o incorporate per oggetti annidati, e determina tipi di slice per array — inclusi slice di oggetti che hanno la propria struttura riutilizzabile.

Le opzioni modellano il codice generato. Denomina la struttura radice tu stesso o lascia che lo strumento la deduca. Scegli come vengono scritti i tag — mantieni la chiave originale o convertila in snake_case o camelCase indipendentemente da come il campo originale è stato denominato. Abilita "Aggiungi omitempty" per aggiungerlo a ogni tag, e "Puntatori per campi opzionali" per contrassegnare i campi mancanti o null nelle parti del campione con un tipo di puntatore. Quando gli oggetti dell'array hanno campi leggermente diversi, "Unisci forme elementi array" li combina in una struttura con campi aggiuntivi contrassegnati come opzionali anziché rinunciare al tipo di elemento. Per i valori che lo strumento non può determinare, scegli interface{}, l'alias any o json.RawMessage per la decodifica differita.

Questo è il passaggio prima di scrivere un client API o un caricatore di configurazione in Go: incolla una risposta reale o un campione di configurazione e ottieni una struttura iniziale anziché digitare manualmente i nomi dei campi e i tag. Le strutture annidate possono rimanere come tipi denominati separati per il riutilizzo in altre parti del pacchetto, o essere renderizzate inline quando una forma viene utilizzata una sola volta. Per i campi il cui tag non corrisponde più alla chiave JSON originale, è disponibile un commento con la chiave originale.

Tutto viene eseguito localmente nel tuo browser — il JSON che inclli, che potrebbe includere risposte API reali o configurazione interna, non viene mai caricato. Copia il risultato, scaricalo come file .txt o sposta l'output nell'input per perfezionare il campione e rigenerare.

FAQ

Gestisce oggetti e array annidati?
Sì. Gli oggetti annidati diventano la propria struttura denominata (o una struttura anonima incorporata se la abiliti), gli array diventano slice, e una slice di oggetti riutilizza una struttura quando ogni elemento ha la stessa forma.
Cosa succede se gli oggetti dell'array non hanno tutti gli stessi campi?
Con "Unisci forme elementi array" abilitato (predefinito), lo strumento combina ogni campo che ha visto negli elementi in una struttura, contrassegnando i campi mancanti in alcuni elementi come opzionali. Disabilitalo e lo strumento ritorna a un tipo di elemento dinamico.
Posso controllare come vengono denominati i tag JSON?
Sì, con l'opzione di formato tag JSON: mantieni la chiave originale esattamente come appare nel campione, o converti ogni chiave in snake_case o camelCase.
Che tipo obtengo per un campo che lo strumento non riesce a dedurre?
interface{}, l'alias any o json.RawMessage, a seconda dell'opzione che scegli — RawMessage è utile quando vuoi decodificare quel campo tu stesso in seguito.
Il mio JSON viene caricato da qualche parte?
No. La generazione della struttura viene eseguita interamente nel tuo browser — il JSON che inclli non esce mai dal tuo dispositivo.