Was ist der JSON-Schema-Generator?

Der JSON Schema Generator liest einen Beispiel-JSON-Wert - eine API-Antwort, eine Konfigurationsdatei, eine Webhook-Nutzlast - und schreibt ein JSON-Schema, das ihn validiert. Er leitet den Typ jedes Feldes ab, führt ein Array von Objekten in ein einzelnes Elementschema statt in eine verrauschte Verbindung ein, leitet ab, welche Schlüssel von denen in jedem Datensatz benötigt werden, und kann Zeichenfolgenformate wie Datum-Zeit, E-Mail, URI und UUID markieren. Sie fügen Daten ein, die Sie bereits haben; Sie erhalten das Schema, das Sie andernfalls per Handschreiben-Klausel per Klausel erhalten würden.
Ein Schema von Hand zu schreiben ist langsam und leicht subtil falsch zu liegen Es ist verlockend einzugeben, was eine Nutzlast Ihrer Meinung nach enthält, ein verschachteltes Feld zu verpassen, eine gelegentlich Null-Eigenschaft wie erforderlich zu markieren oder zu vergessen, dass ein Endpunkt ein Array zurückgibt, wo ein anderer ein einzelnes Objekt zurückgibt Ein direkt aus realen Daten generiertes Schema beginnt bei der tatsächlichen Form, also stimmt das Dokument, das Sie validieren, mit dem überein, was der Dienst wirklich sendet Von dort aus verschärfen Sie Einschränkungen - Muster, Aufzählungen, Minima - von Hand, aber das mühsame Gerüst ist fertig.
Alles läuft in Ihrem Browser Die Inferenz-Engine ist dependenzfreies TypeScript, kein Wrapper um eine gehostete API, daher verlassen Nutzlasten - die routinemäßig Token, E-Mails und interne IDs tragen - die Seite niemals Wählen Sie Draft-07 oder den Dialekt 2020-12, fügen Sie einen Titel hinzu, schalten Sie die Erkennung erforderlicher Felder, Formaterkennung und strenge `additionalProperties` um, kopieren Sie dann das Schema oder laden Sie es als .json-Datei herunter.
Das Schema beschreibt Ihr Sample und nicht Ihre Absicht. Behandeln Sie die Ausgabe daher als einen ersten Entwurf: Erforderliche Felder werden aus dem, was zufällig vorhanden ist, abgeleitet und Formate werden durch Muster erkannt, sodass eine Zeichenfolge, die wie ein Datum aussieht, sogar als eins eingegeben wird wenn es sich um eine Kennung handelt, die lediglich einer ähnelt.
Wie verwende ich den JSON-Schema-Generator?
Füge deinen JSON ein
Löschen Sie eine API-Antwort, ein Fixture oder einen JSON-Wert. Laden Sie zuerst das Beispiel, um zu sehen, wie verschachtelte Objekte, Arrays von Objekten und Zeichenfolgenformate behandelt werden.
Wählen Sie den Dialekt
Wählen Sie Entwurf-07 für die breiteste Werkzeugunterstützung oder 2020-12 für die aktuelle Spezifikation. Der richtige $schema-URI wird für Sie auf die Ausgabe geschrieben.
Legen Sie Ihre Optionen fest
Fügen Sie einen optionalen Titel hinzu, entscheiden Sie, ob ein erforderliches Array ausgegeben werden soll, Zeichenfolgenformate erkennen und Objekte mit zusätzlichen Eigenschaften sperren: false für eine strikte Validierung.
Generieren, dann kopieren oder herunterladen
Drücken Sie Generieren. Überprüfen Sie die abgeleiteten Typen und die erforderlichen Felder und kopieren Sie das Schema in Ihre Zwischenablage oder laden Sie es als .json-Datei herunter, die zum Ablegen in Ihren Validator bereit ist.
Hauptmerkmale
Entwurf-07 und 2020-12 Ausgabe
Senden Sie entweder den weit verbreiteten Draft-07-Dialekt oder die aktuelle Spezifikation 2020-12. Der passende $ Schema-Kennung wird in den Stamm geschrieben, sodass die Validatoren die richtigen Regeln auswählen.
Smart Array-Zusammenführung
Ein Array von Objekten wird zu einem einzelnen Element, das ein Element beschreibt, kein auseinander liegendes Element. In jedem Element vorhandene Tasten sind erforderlich, Tasten, die nur in einigen erscheinen, werden optional übrig.
Erforderliche Feldfolgerung
Der Generator leitet das erforderliche Array aus Schlüsseln ab, die in jedem Objekt vorhanden sind, das er sieht, und zwar genau so, wie sich reale paginierte Daten verhalten - einige Felder sind immer da, andere nicht.
Erkennung von String-Formaten
Erkennt Datums-, Datum-, Uhrzeit-, E-Mail-, URI-, UUID- und IPv4-Strings und markiert sie mit dem entsprechenden Format-Keyword, sodass Sie eine Bestätigung erhalten, die Sie sonst von Hand hinzufügen würden.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. 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.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!