Een JSON to Go struct converter verandert een JSON document in de Go type declaraties die het beschrijven, zodat je dezelfde data kunt unmarshal met codering/json in plaats van de struct met de hand te typen Elk JSON object wordt een Go struct, elk veld draagt een json: "key" tag die het weer afbeeldt op de oorspronkelijke naam, en de scalaire types worden afgeleid uit de waarden: een JSON string wordt string, een geheel getal wordt int, een decimaal wordt float64, waar en onwaar worden bool, en null wordt interface {}. Plak een payload en je krijgt een kant-en-klaar-compile type blok terug.
Het bestaat omdat het schrijven van Go-structuren uit een echt API-antwoord vervelend is en gemakkelijk subtiel verkeerd te krijgen Veldnamen moeten worden geëxporteerd en Go-conventies volgen, dus id wordt ID en user_url wordt UserURL, terwijl de json-tag de exacte originele sleutel of json moet behouden. Unmarshal slaat stilletjes het veld over Geneste objecten hebben hun eigen structuur nodig, en een reeks objecten heeft een enkele structuur nodig die elke sleutel bedekt die een element heeft. Als je dat doet in een diep geneste reactie, kruipen fouten consequent toe. De converter past deze regels consequent toe: geneste objecten worden inline-structuren en reeksen objecten worden samengevoegd, zodat een sleutel die slechts in enkele elementen voorkomt, nog steeds aanwezig is in het gegenereerde type.
Alles draait in uw browser De JSON die u plakt wordt geparseerd en geanalyseerd in JavaScript op uw eigen apparaat, dus er wordt niets geüpload, gelogd of opgeslagen, en de tool blijft werken met het netwerk losgekoppeld zodra de pagina is geladen Dat maakt uit wanneer de payload een privé API-antwoord is of sleutels en waarden bevat die u liever nergens heen wilt sturen U kunt het root-type hernoemen, gehele getallen naar int64 schakelen wanneer u het bredere type nodig hebt, en weglaten toevoegen aan elke tag wanneer u wilt dat nulwaarden worden weggelaten uit de gecodeerde uitvoer.
Plak een JSON object of array in het invoervak Laad het monster eerst als u de vorm van de gegenereerde struct wilt zien voordat u uw eigen gegevens gebruikt.
Voer een naam in voor de structuur op het hoogste niveau, zoals Gebruiker of ApiResponse. Het wordt opgeschoond in een geldige geëxporteerde Go-identificatie, zodat het wordt gecompileerd zoals geschreven.
Kies int of int64 voor hele getallen, en schakel weglaten in als u wilt dat lege velden worden weggelaten wanneer de struct wordt terug gecodeerd naar JSON.
Klik op Converteren om de struct-definities te bouwen en kopieer ze vervolgens naar uw Go-bestand. Ongeldige JSON wordt gerapporteerd met het exacte parserbericht, zodat u het kunt repareren.
Elk veld houdt een json: "original_key" tag bij, dus json.Unmarshal wijst de gegevens terug naar de exacte JSON-naam, zelfs wanneer het Go-veld wordt hernoemd om conventies te volgen.
Sleutels worden geëxporteerd en algemene initialismen worden in een hogere behuizing geplaatst, dus id wordt ID, gebruiker_url wordt UserURL en html_body wordt HTMLBody, wat overeenkomt met de golintverwachtingen.
Geneste JSON-objecten worden inline-struct-literals tot elke diepte, dus de hele vorm leeft in één declaratie die je als één blok kunt plakken.
Een reeks objecten produceert één structuur die elke sleutel bedekt die een element heeft, en conflicterende waardetypen voor een sleutel vallen terug naar interface{} in plaats van te falen.
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
Sort the keys of a JSON object alphabetically, recursively through nested objects, with optional array sorting. Ascending or descending, minify or pretty. Client-side, no signup.
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. 100% in your browser.
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
0 comments
No comments yet. Be the first to share your thoughts!