JSON Schema Generator
Automatisch standardkonforme JSON Schema-Definitionen aus JSON-Daten generieren
// JSON Schema wird automatisch generiertWas ist JSON Schema?
JSON Schema ist eine Spezifikation zur Beschreibung und Validierung von JSON-Datenstrukturen. Es definiert Regeln für Struktur, Datentypen, Einschränkungen und wird weit verbreitet für API-Validierung, Formularvalidierung, Konfigurationsdatei-Überprüfung verwendet.
Mit JSON Schema können Sie:
- Datenvalidierung: Überprüfen ob JSON-Daten dem erwarteten Format und Einschränkungen entsprechen
- Dokumentationsgenerierung: Automatisch API-Dokumentation und Typdefinitionen generieren
- Code-Intelligenz: Intelligente Vervollständigung und Typprüfung in IDEs erhalten
- Automatisierte Tests:: Automatische Validierung von Antwortdatenformat in Tests
Dieses Tool unterstützt die JSON Schema Draft-07-Spezifikation und leitet intelligent verschachtelte Objekte, Array-Typen, Enum-Werte und andere komplexe Strukturen ab.
Verwendung
- JSON-Daten in das linke Eingabefeld einfügen oder auf Beispiel klicken um Beispieldaten zu laden
- Optionen konfigurieren: Schema ID festlegen, wählen ob alle Felder erforderlich sind, Standardwerte hinzufügen usw.
- Die entsprechende JSON Schema-Definition wird automatisch rechts generiert
- Auf Kopieren klicken um das generierte Schema in die Zwischenablage zu kopieren
- Schema für API-Validierung, Formularvalidierung oder Konfigurationsdatei-Überprüfung verwenden
Beispiele
Einfaches Objekt-Schema
输入 JSON:
{
"name": "张三",
"age": 28,
"isActive": true
}
输出 JSON Schema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"description": "Object with 3 properties",
"properties": {
"name": {
"type": "string",
"description": "String value"
},
"age": {
"type": "integer",
"description": "Number value"
},
"isActive": {
"type": "boolean",
"description": "Boolean value"
}
},
"required": ["name", "age", "isActive"]
}Verschachtelte Objekte und Arrays
输入 JSON:
{
"user": {
"id": 1,
"profile": {
"avatar": "url",
"skills": ["JS", "TS"]
}
}
}
输出 JSON Schema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"profile": {
"type": "object",
"properties": {
"avatar": { "type": "string" },
"skills": {
"type": "array",
"items": { "type": "string" }
}
}
}
}
}
}
}Datenvalidierungsbeispiel
使用 Ajv 验证数据:
const Ajv = require('ajv');
const ajv = new Ajv();
const schema = { /* 生成的 Schema */ };
const validate = ajv.compile(schema);
const validData = { name: "李四", age: 25, isActive: false };
const invalidData = { name: "王五", age: "三十" };
console.log(validate(validData)); // true
console.log(validate(invalidData)); // false
console.log(validate.errors); // 错误详情Häufige Fragen (FAQ)
Q: Was sind häufige Anwendungsfälle für JSON Schema?
A: JSON Schema wird hauptsächlich verwendet für: API-Anfrage/Antwort-Validierung, Formulardaten-Validierung, Konfigurationsdatei-Formatprüfung, Datenbank-Dokument-Beschränkungen, automatisierte Testdaten-Validierung, IDE-Smart-Completion-Konfiguration. Es ist ein wichtiges Werkzeug für Datenspezifikation in der modernen Webentwicklung.
Q: Welche Schema-Version generiert dieses Tool?
A: Dieses Tool generiert Schema entsprechend der JSON Schema Draft-07-Spezifikation, der am weitesten verbreiteten Version, kompatibel mit den meisten Validierungsbibliotheken und Toolchains.
Q: Wie werden komplexe Array-Typen behandelt?
A: Das Tool analysiert automatisch die Struktur der Array-Elemente. Wenn Elemente Objekte sind, wird items-Definition generiert; wenn Typen inkonsistent sind, wird anyOf oder oneOf verwendet um mehrere mögliche Typen darzustellen; leere Arrays generieren leere items-Definition.
Q: Was bedeutet das required-Feld?
A: required ist ein String-Array, das Eigenschaftsnamen auflistet, die vorhanden sein müssen. Wenn eine Eigenschaft in required ist, kann sie bei der Validierung nicht fehlen. Eigenschaften nicht in required sind optional.
Q: Wie verwende ich das generierte Schema in Projekten?
A: Verwenden Sie Validierungsbibliotheken wie Ajv, jsonschema zur Datenvalidierung. In Node.js: const Ajv = require('ajv'); const validate = new Ajv().compile(schema); const valid = validate(data);. Frontend-Frameworks wie React, Vue haben Formular-Validierungskomponenten die JSON Schema unterstützen.
Q: Was bewirkt additionalProperties: false?
A: Diese Einstellung verbietet zusätzliche Eigenschaften die nicht im Schema definiert sind. Nützlich für Szenarien die strikte Datenstrukturkontrolle erfordern, um versehentliche Feld-Verschmutzung zu verhindern, kann aber bei zu großer Strenge Kompatibilitätsprobleme verursachen.
Q: Kann ich benutzerdefinierte Validierungsregeln hinzufügen?
A: Ja, bearbeiten Sie das Schema nach der Generierung manuell um weitere Einschränkungen hinzuzufügen. JSON Schema unterstützt umfangreiche Validierungsschlüsselwörter: minimum/maximum (Zahlenbereich), minLength/maxLength (Stringlänge), pattern (Regex-Match), enum (Enum-Werte), format (vordefinierte Formate wie email, uri), etc.
Q: Wie generiere ich JSON Schema aus TypeScript-Typen?
A: Dieses Tool leitet Schema aus JSON-Daten ab. Um aus TypeScript-Typen zu generieren, verwenden Sie Tools wie typescript-json-schema oder erstellen Sie zuerst Beispiel-JSON-Daten und verwenden dann dieses Tool.