Sări la conținut
Complet local

JSON la Structură Go

Convertește un exemplu JSON în definiții de structură Go cu tipuri și etichete deduse.

Intrare
Ieșire

JSON la Structură Go

Lipiți un exemplu JSON și acest instrument va genera definițiile de structură Go corespunzătoare cu etichete json. Deduce int, float64, string, bool și null pentru fiecare câmp, creează structuri denumite sau încorporate pentru obiecte imbricate și determină tipuri de felii pentru matrice — inclusiv felii de obiecte care au propria structură reutilizabilă.

Opțiunile formează codul generat. Denumiți structura root singur sau lăsați instrumentul să o deducă. Alegeți cum sunt scrise etichetele — păstrați cheia originală sau convertiți-o în snake_case sau camelCase, indiferent de modul în care a fost denumit câmpul original. Activați "Adaugă omitempty" pentru a o adăuga la fiecare etichetă, și "Pointeri pentru câmpuri opționale" pentru a marca câmpurile care lipsesc sau sunt nule în părți ale exemplului cu un tip pointer. Când obiectele din matrice au câmpuri ușor diferite, "Fuzionează forme de elemente de matrice" le combină într-o structură cu câmpuri suplimentare marcate ca opționale în loc să renunțe la tipul de element. Pentru valorile pe care instrumentul nu le poate determina, alegeți interface{}, aliasul any sau json.RawMessage pentru decodare amânată.

Acesta este pasul înainte de a scrie un client API sau un încărcător de configurare în Go: lipiți un răspuns real sau exemplu de configurare și obțineți o structură inițială în loc să tastați manual numele câmpurilor și etichetele. Structurile imbricate pot rămâne ca tipuri denumite separate pentru reutilizare în altă parte a pachetului, sau pot fi redate în linie când o formă este folosită o singură dată. Pentru câmpurile a căror etichetă nu mai corespunde cheii JSON originale, este disponibil un comentariu cu cheia originală.

Totul rulează local în browserul dvs. — JSON-ul pe care îl lipiți, care ar putea include răspunsuri API reale sau configurare internă, nu este niciodată încărcat. Copiați rezultatul, descărcați-l ca fișier .txt sau mutați ieșirea înapoi în intrare pentru a rafina exemplul și a o regenera.

FAQ

Funcționează cu obiecte și matrice imbricate?
Da. Obiectele imbricate devin propria structură denumită (sau o structură anonimă încorporată dacă o activați), matricele devin felii, și o feliere de obiecte reutilizează o structură când fiecare element are aceeași formă.
Ce se întâmplă dacă obiectele din matrice nu au toate aceleași câmpuri?
Cu "Fuzionează forme de elemente de matrice" activat (implicit), instrumentul combină fiecare câmp pe care l-a văzut în elemente într-o structură, marcând câmpurile care lipseau în unele elemente ca opționale. Dezactivați-l și instrumentul revine la un tip de element dinamic.
Pot controla cum sunt denumite etichetele JSON?
Da, cu opțiunea format etichetă JSON: păstrați cheia originală exact cum apare în exemplu, sau convertiți fiecare cheie în snake_case sau camelCase.
Ce tip obțin pentru un câmp pe care instrumentul nu îl poate deduce?
interface{}, aliasul any sau json.RawMessage, în funcție de opțiunea pe care o alegeți — RawMessage este util atunci când doriți să decodificați acel câmp singur mai târziu.
JSON-ul meu este încărcat undeva?
Nu. Generarea structurii rulează complet în browserul dvs. — JSON-ul pe care îl lipiți nu pleacă niciodată de pe dispozitivul dvs.