Input JSON

Output Go

Cos'è JSON in Go?

Hai appena chiamato una REST API su Postman, la risposta è JSON, e devi fare l'unmarshal in Go — ma scrivere a mano la struct per una risposta profondamente annidata è davvero noioso. JSON e il pacchetto encoding/json di Go funzionano benissimo insieme, ma Go richiede definizioni di struct esplicite per ogni oggetto annidato. Dimenticare un campo o sbagliare un tipo fa sì che l'unmarshal ritorni silenziosamente valori zero. Questo strumento genera l'intera struttura di struct dal tuo JSON, pronta da incollare nel progetto.

Questo strumento genera struct Go dal tuo JSON. Imposta il nome della struct e il pacchetto nel pannello di configurazione. Abilita i tag JSON per json:"field_name" in modo che i campi della struct si mappino correttamente alle chiavi camelCase o snake_case. Abilita i puntatori per i campi opzionali o nullable.

La conversione viene eseguita interamente nel tuo browser. Il tuo JSON non viene mai inviato a un server.

Come usare questo strumento

1

Incolla o carica JSON

Copia il tuo JSON e incollalo nell'editor sinistro. Puoi anche fare clic su Carica per caricare un file .json o .txt. Usa il pulsante Esempio per caricare dati di esempio. Imposta il nome della struct e il nome del pacchetto nel pannello di configurazione.

2

Rivedi le struct generate

Il pannello di destra mostra le struct Go generate. Gli oggetti annidati diventano struct annidate o separate. Gli array diventano []Type. I tag JSON mappano i campi della struct alle chiavi JSON. Se il tuo JSON ha sintassi non valida, correggila prima usando il Formattatore JSON o il Validatore JSON.

3

Copia o scarica

Usa Copia per mettere il risultato negli appunti, o Scarica per salvarlo come file .go. Incollalo nel tuo progetto Go.

Esempi JSON in Go

Ecco un esempio di generazione di struct Go da un oggetto JSON.

Esempio: Record abbonato

Input JSON:

Input

Output Go generato:

Output

Quando JSON in Go è utile

La maggior parte degli sviluppatori ne ha bisogno quando integra API. Invii una richiesta tramite Postman o curl, e la risposta arriva come JSON. Incollarla qui ti dà struct tipizzate da usare immediatamente con encoding/json.

I file di configurazione sono un altro caso comune. Un config.json o settings.json con oggetti annidati spesso richiede una struct Go per l'accesso type-safe. Se devi prima unire due file JSON, usa lo strumento separato JSON Merge.

Le esportazioni di database da MongoDB, Firestore o CouchDB sono tipicamente grandi blob JSON. Elaborarli qui ti aiuta a capire la struttura del documento e generare struct Go per script di importazione o query.

Domande frequenti

Come genero struct Go automaticamente da JSON?

Incolla il tuo JSON in questo strumento e genera subito le struct Go. Abilita i Tag JSON perché i nomi dei campi si mappino correttamente alle chiavi JSON. Copia il risultato nel tuo progetto Go — pronto per usare con json.Unmarshal().

Perché le struct Go hanno bisogno di tag JSON?

I nomi dei campi devono essere esportati (maiuscoli) per JSON. JSON usa spesso camelCase o snake_case. Il tag json:"fieldName" dice a encoding/json quale chiave JSON corrisponde a quale campo. Senza tag, json.Unmarshal fa matching case-insensitive e può perdere campi silenziosamente.

I miei dati vengono inviati da qualche parte?

No. Tutto gira nel tuo browser — il tuo JSON non lascia mai la tua macchina. Puoi verificarlo nella tab Rete del browser. Sicuro anche per dati di produzione.

Cosa fare con omitempty?

Aggiungi omitempty al tag JSON per i campi che non vuoi nell'output quando sono vuoti: json:"name,omitempty". Il generatore non lo aggiunge di default — dipende dal caso d'uso, modifica l'output dopo la generazione.

Quando usare i puntatori per i campi struct?

Usa *Type per campi opzionali o nullable. Con un puntatore, un campo JSON assente restituisce nil, che puoi controllare. Senza puntatori ottieni il valore zero e non riesci a capire se il campo mancava o era semplicemente vuoto.

Strumenti correlati

Per la gestione JSON di Go, vedi encoding/json. Per JSON, vedi la specifica JSON e RFC 8259. Per i test API, vedi Postman.