Aussagekräftige Varianten sammeln
Fasse Datensätze derselben Antwortform in einem Array zusammen. Ähnliche Objekte an verschiedenen Eigenschaftspositionen erhalten unabhängige Go-Strukturen.
Typgenerierung
Vergleiche beide Beispieldatensätze. Die Ausgabe enthält die Paketdeklaration und nur die benötigten Imports.
Analyse und Generierung erfolgen im Browser. Eingaben werden weder hochgeladen noch gespeichert.
3 Deklarationen · 2 Pointertypen
JSON zu Go erstellt einen Modellentwurf aus API-Antworten. Mehrere Datensätze in einem Array zeigen, welche Felder fehlen, null enthalten oder ihren Typ wechseln.
Ein Beispiel belegt weder Pflichtfelder noch Geschäftsregeln. Prüfe die Ausgabe anhand des Schnittstellenvertrags und teste sie in deinem Projekt.
JSON zu Go untersucht jedes Element an derselben Array-Position. Auch ein Feld, das erst im zweiten Datensatz vorkommt, bleibt erhalten. Bekannte Typen können bei fehlenden oder null-Werten Pointer erhalten.
Einfache Ganzzahlentokens im int64-Bereich werden int64. Dezimalzahlen, Exponenten und größere Ganzzahlen werden json.Number. Die Auswahl läuft nicht über eine vorherige JavaScript-Gleitkommaumwandlung.
Fasse Datensätze derselben Antwortform in einem Array zusammen. Ähnliche Objekte an verschiedenen Eigenschaftspositionen erhalten unabhängige Go-Strukturen.
Deaktiviere die Datumserkennung für unveränderten Zeittext. Ohne benannte verschachtelte Typen entstehen Inline-Structs. Ohne json-Tags geht die Zuordnung zu Originalschlüsseln verloren.
Automatik wartet 350 ms nach einer Änderung. Ausgeschaltet erscheint Erzeugen; Ctrl/Cmd+Enter funktioniert ebenfalls. Änderungen sperren den Export, bis ein aktuelles Ergebnis erfolgreich vorliegt.
Der Go Struct Konverter bildet snake_case und camelCase auf exportierte ASCII-Namen ab. Kürzel wie ID bleiben groß; Kollisionen erhalten feste Zahlensuffixe. Aktivierte Tags bewahren unterstützte Originalschlüssel.
Bekannte skalare Werte und Structs erhalten bei null oder fehlenden Feldern standardmäßig Pointer. Slices und Maps können bereits nil sein. Ausschließlich null ergibt any; Pointer unterscheiden einen Nullwert nicht von einem fehlenden Feld.
Nur einfache Ganzzahlentokens innerhalb des vorzeichenbehafteten 64-Bit-Bereichs werden int64. Auch 1.0 und 1e3 werden json.Number, da encoding/json sie nicht direkt in Integer dekodiert. Prüfe Konvertierungsfehler vor Berechnungen.
Vollständige gültige RFC3339-Zeitstempel mit höchstens neun Nachkommastellen können time.Time werden. Alle nichtleeren String-Beispiele an dieser Position müssen passen. Nichtobjekt-Wurzeltypen sind Aliase und behalten die Methoden des Ursprungstyps.
Die Namen beginnen mit einem ASCII-Großbuchstaben. Übliche Kürzel bleiben erhalten; Kollisionen erhalten Zahlen. Unterstützte Originalschlüssel werden über Tags zugeordnet. Ohne Tags kann die automatische Namenszuordnung beim Dekodieren abweichen.
Ein bekannter Skalar- oder Struct-Typ erhält standardmäßig einen Pointer. Ausschließlich null ergibt any; Slices und Maps sind schon nil-fähig. Fehlend und explizit null bleiben bei Pointern derselbe Zustand.
Einfache Ganzzahlenschreibweise im int64-Bereich ergibt int64. Dezimalzahlen, Exponenten und größere Zahlen ergeben json.Number. Für Zahlen in any ist Decoder.UseNumber() separat nötig.
Unvereinbare Typen an derselben Position werden any. Alle Elemente tragen zur Analyse bei, sodass auch ein späterer Typwechsel sichtbar wird. Ein einzelner Datensatz kann solche Abweichungen nicht belegen.
JSON zu Go übernimmt den Entwurf exportierter Namen, Tags und verschachtelter Deklarationen. Pflichtbedingungen und Geschäftslogik musst du selbst ergänzen. Prüfe das Modell mit realen Antworten, bevor du dich darauf verlässt.
Fehlt ein wichtiger Inferenzfall?
Nutze JSON zu Go mit mehreren repräsentativen Datensätzen und prüfe Pointer, Zahlen und Zeitwerte vor dem Export.