Input JSON

Output Go

Cos'è JSON in Go?

Go usa le struct per i dati strutturati. Quando fai l'unmarshal di JSON con encoding/json, hai bisogno di struct con campi e tipi corrispondenti. La specifica JSON definisce oggetti, array, stringhe, numeri e booleani—ma Go richiede definizioni di struct esplicite per ogni oggetto annidato.

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 <code>[]Type</code>. 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 <strong>Copia</strong> per mettere il risultato negli appunti, o <strong>Scarica</strong> per salvarlo come file <code>.go</code>. 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 <code>config.json</code> o <code>settings.json</code> 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

Perché i tag JSON?

I nomi dei campi delle struct Go devono essere esportati (maiuscoli) per JSON. JSON usa spesso camelCase o snake_case. Il tag json:"fieldName" mappa il campo della struct alla chiave JSON. Abilita i Tag JSON nella configurazione affinché le struct generate funzionino correttamente con json.Unmarshal e json.Marshal.

Puntatori per i campi opzionali?

Se un campo JSON può essere null o mancante, usa *Type per distinguere tra valore zero e assente. Senza puntatori, non puoi distinguere la differenza. Abilita Usa Puntatori nella configurazione per i campi opzionali o nullable.

I miei dati vengono inviati da qualche parte?

No. La generazione viene eseguita interamente nel tuo browser. Nessun dato viene inviato a nessun server.

Cosa succede con omitempty?

Aggiungi omitempty al tag JSON per i campi che non vuoi nell'output quando sono vuoti: json:"name,omitempty". Modifica l'output se necessario.

Interface{} per JSON dinamico?

Per strutture sconosciute o molto variabili, usa map[string]interface{} o interface{}. Questo strumento genera struct tipizzate per forme note.

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.