JSON-Schema

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Benutzerhandbuch und Referenz > JSON, JSON-Schema >

JSON-Schema

Genau wie in einem XML-Schema Struktur und Inhalt eines XML-Dokuments definiert sind, wird in einem JSON-Schema definiert, wie die JSON-Daten in einem JSON-Dokument strukturiert sind. Im JSON-Schema ist definiert, welche Datenfelder erwartet werden und wie die Werte dargestellt werden. Informationen zu JSON-Schemas und die JSON-Schema-Spezifikation finden Sie hier.

 

Ein JSON-Schema ist selbst ein JSON-Objekt. Lexikalisch steht das gesamte Schema innerhalb von geschweiften Klammern (siehe Codefragment unten). Geschweifte Klammern dienen als Trennzeichen für JSON-Objekte. Das Schema ist in JSON-Syntax geschrieben und normalerweise in einer Datei mit der Erweiterung .json gespeichert. Durch das Schlüsselwort $schema, das das erste Schlüsselwort des Objekts der obersten Ebene sein sollte, ist es als JSON-Schema gekennzeichnet. Das Schlüsselwort sollte den Wert "http://json-schema.org/draft-N/schema#" haben, wobei N für die Versionsnummer steht. Hier finden Sie ein Beispiel dafür, wie das Schlüsselwort $schema verwendet wird.

 

{

   "$schema": "http://json-schema.org/draft-07/schema#",

   ...

}

 

Anmerkung:Zwar kann das Schlüsselwort $schema den Wert "http://json-schema.org/schema#"—haben. Dieser Wert definiert die neueste Version des Schemas. Am besten verwenden Sie eine URL zur Angabe einer bestimmten Version. Nähere Informationen dazu finden Sie unter JSON-Schema-Version.

 

 

Sie können ein JSON-Schema in XMLSpy grafisch in der JSON-Schema-Ansicht erstellen. Eine Anleitung dazu finden Sie im Abschnitt JSON-Schema-Ansicht. Neben den Schemabearbeitungsfunktionen in der Schema-Ansicht stehen im Zusammenhang mit Schemas die folgenden Funktionen zur Verfügung:

 

Validierung mit dem JSON Validator von XMLSpy: Weisen Sie einem JSON-Instanzdokument ein JSON-Schema zu und validieren Sie das Instanzdokument in XMLSpy. Nähere Informationen dazu finden Sie unter Validieren von JSON-Dokumenten.
Generierung eines JSON-Schemas anhand einer JSON-Instanz: Wenn bereits ein JSON-Instanzdokument vorhanden ist, können Sie anhand dieses Dokuments ein JSON-Schema generieren. Falls nötig, können Sie das Schema später bearbeiten.
Konvertierung zwischen JSON und XML: Sie können Dokumente zwischen diesen beiden Formaten konvertieren.

 

Terminologie

Unten finden Sie Definitionen häufig verwendeter JSON-Schema-Begriffe, die in diesem Zusammenhang auf der Benutzeroberfläche und in dieser Dokumentation vorkommen.

 

Begriff

Definition

Schema

Das Schema-Objekt der obersten Ebene in einem JSON-Schema-Dokument; die Schema-Datei.

Objekt

Ein JSON-Typ, der null oder mehr Eigenschaften enthält

Eigenschaft

Ein Schlüssel:Wert-Paar eines Objekts. Der Wert dieses Objekts kann jeden beliebigen JSON-Datentyp haben.

Schlüsselwort

Der Schlüssel-Teil des Schlüssel:Wert-Paars eines Objekts. Dies ist immer ein String.

Subschema

Ein Objekt, das ein Child eines Operators oder einer Abhängigkeit ist.

Definition

Die komplette Definition eines jeden JSON-Typs. Definitionen können global oder lokal sein.

Array

Eine kommagetrennte geordnete Liste bestehend aus null oder mehr Elementen jedes beliebigen JSON-Datentyps.

Atomare Typen

Die JSON-Datentypen String, Zahl, Ganzzahl, Boolesch und Null.

Typ-Selektoren

Die Typen any und multiple, mit denen ein beliebiger bzw. mehrere Typen ausgewählt werden.

Operatoren

Occurrence-Selektoren, die als Children von Definitionen hinzugefügt werden können. Siehe dazu Abschnitt Operatoren.

 

JSON-Datentypen

Objekteigenschaftswerte und Array-Elemente können die folgenden Typen haben:

 

String (muss innerhalb von Anführungszeichen stehen). Für einen String kann zusätzlich ein Format wie z.B. date-time oder email definiert sein.
Zahl: Eine Zahl mit Nachkommastellen; dazu gehören auch Ganzzahlen
Ganzzahl: Eine Zahl ohne Nachkommastellen; eine Teilmenge des Typs Zahl
Boolesch (true/false, steht nicht innerhalb von Anführungszeichen)
Objekt: Ermöglicht die Verschachtelung von Daten, wenn es innerhalb eines anderen Objekts verwendet wird.
Array: Bietet die Möglichkeit, komplexere als in Objekten zulässige Strukturen zu erstellen
Null (nicht in Anführungszeichen eingeschlossen)

 


© 2019 Altova GmbH