JSON in Go-Structs
JSON to Go Structs
Erzeugt aus einem JSON-Beispiel Go-Structs mit json-Tags, verschachtelte und wiederholte Typen eingeschlossen.
Erzeugt aus einem Beispieldokument Go-Structs mit `json:`-Tags, sodass ein Antwort-Body zu etwas wird, in das `encoding/json` unmarshalen kann. Feldnamen sind exportiert und in CamelCase, und der ursprüngliche Schlüssel bleibt im Tag erhalten – der Teil, den man von Hand falsch macht.
Beispiel-JSON
Eine .json-Datei ablegen
Wird in diesem Tab gelesen. Nichts wird hochgeladen.
Geben Sie ihm jedes Element, das Sie haben. Jeder weitere Datensatz engt die Vermutung ein – ein Feld, das in einem davon fehlt, ist genau das, was es optional macht.
TypeScript
So funktioniert es
Fügen Sie so viele Datensätze ein, wie Sie haben
Jedes Element jedes Arrays wird gelesen und zusammengeführt, nicht nur das erste. Drei Datensätze sagen weit mehr als einer, denn ein Feld, das in einem davon fehlt, ist genau das, was dieses Feld optional macht.
Benennen Sie den Wurzeltyp
Verschachtelte Objekte werden nach dem Schlüssel benannt, der sie enthält, bei Arrays in die Einzahl gesetzt, sodass `users` ein `User` ergibt. Nur die Wurzel braucht einen Namen von Ihnen.
Lesen Sie die Zähler unter der Ausgabe
Typen, optionale Felder, Unions und wie viele Datensätze zusammengeführt wurden. Ein Union-Zähler über null bedeutet, dass ein Feld in Ihrer Stichprobe zwei verschiedene Arten von Wert hatte – einen Blick wert, bevor Sie das Ergebnis in eine Codebasis einfügen.
Fügen Sie die Structs in ein Package ein
Felder, die in manchen Datensätzen fehlten, bekommen `,omitempty` im Tag, damit ein Marshal-Hin-und-zurück sie nicht erfindet. Es wird keine package-Zeile ausgegeben – Sie wissen, wohin es geht.
Häufige Fragen
Warum ist jede Zahl `float64`?
Nur wenn die Stichprobe einen Bruchwert hatte. War jede Zahl im Dokument ganzzahlig, wird das Feld als Integer-Typ ausgegeben. Es gibt keine Möglichkeit, eine JSON-`1`, die eine ID ist, von einer JSON-`1`, die ein gerundeter Preis ist, zu unterscheiden, also ist die Stichprobe der einzige Beleg, den es gibt.
Was ist mit einem Feld, das in manchen Datensätzen null ist?
Es wird zu einem Zeigertyp, denn so unterscheidet Go „fehlend oder null“ von „Nullwert“. Das heißt, das Dereferenzieren braucht eine nil-Prüfung – lästig, und der Grund, warum die Alternative (ein einfacher Wert, der stillschweigend als 0 oder "" gelesen wird) schlechter ist.
Kommt es mit einem Schlüssel zurecht, der kein gültiger Go-Bezeichner ist?
Der Feldname wird bereinigt – Trennzeichen entfernt, jeder Teil großgeschrieben –, und der rohe Schlüssel bleibt im `json:`-Tag, der das eigentliche Zuordnen übernimmt. Aus einem Schlüssel `user-id` wird in etwa `UserID` mit `json:"user-id"` daneben.
Werden `time.Time`-Felder erzeugt?
Nein. Ein Zeitstempel in JSON ist ein String, und ihn in `time.Time` zu verwandeln, würde ändern, was das Unmarshalen akzeptiert. Wenn Sie das wollen, ändern Sie den Feldtyp von Hand – `encoding/json` parst RFC 3339 von sich aus in `time.Time`.
Eingabe aus
JSON in TypeScript
JSON to TypeScript
Leitet aus einem JSON-Beispiel TypeScript-Interfaces oder -Typen ab und führt optionale und Union-Felder zusammen.
JSON in Rust-Structs
JSON to Rust Structs
Erzeugt aus einem JSON-Beispiel serde-annotierte Rust-Structs, mit Option für nullbare oder fehlende Felder und snake_case-Umbenennungen.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
YAML formatieren und validieren
YAML Formatter & Validator
Rückt YAML einheitlich ein, validiert es und markiert die Tab- und Anker-Fehler, an denen Parser scheitern.
Danach
Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
JSON in Rust-Structs
JSON to Rust Structs
Erzeugt aus einem JSON-Beispiel serde-annotierte Rust-Structs, mit Option für nullbare oder fehlende Felder und snake_case-Umbenennungen.
JSON in TypeScript
JSON to TypeScript
Leitet aus einem JSON-Beispiel TypeScript-Interfaces oder -Typen ab und führt optionale und Union-Felder zusammen.
Base64 kodieren und dekodieren
Base64 Encoder & Decoder
Kodiert und dekodiert Base64 und Base64URL für Text oder Dateien und behandelt UTF-8 korrekt.
curl in Code
curl to Code
Wandelt einen curl-Befehl in fetch, axios, Python requests, Go, PHP oder PowerShell um.
Text-Hash
Text Hash
Berechnet MD5, SHA-1, SHA-256, SHA-384, SHA-512 und CRC-32 einer Zeichenkette, wahlweise in Großbuchstaben oder als Base64.