Wat is een JSON to Go struct converter?
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.
Een kort voorbeeld toont de go JSON to struct mapping Paste {"order_id": 1042, "totaal": 19,5, "items": [{"sku": "A1", "qty": 2}, {"sku": "B2", "qty": 1, "gift_note": "Happy birthday"}]}, typ de volgorde als het Root-type en klik op Converteren U typt Order struct met OrderID int, Total float64 en Items []struct met Sku-reeks, Qty int en GiftNote-reeks Go GiftNote is er slechts één structur Jote-item, maar het tweede structurert het item, maar JiftNote is er ook al is het tweede structur Jote-item
Hoe de JSON to Go struct converter gebruiken?
Plak je json
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.
Geef het roottype een naam
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.
Integer en tag opties instellen
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.
Converteren en kopiëren
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.
Belangrijkste kenmerken
Json tags corrigeren
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.
Veldnamen van de Go-conventie
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.
Inline geneste structuren
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.
Samengevoegde arrays van objecten
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.
Frequently Asked Questions
Related Tools
JSON Schema Generator
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.
JSON Sorter
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.
JSON to PHP Array
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. Runs client-side.
JSON to TypeScript
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.
Comments
0 comments
No comments yet. Be the first to share your thoughts!