Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
JSON Validate

JSON Validate 


 

JSON Validate ( vJson ; vSchema ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
vJson  Objekt in JSON Objekt zum Bestätigen
vSchema  Objekt in Verwendetes JSON Schema zum Bestätigen von JSON Objekten
Funktionsergebnis  Objekt in Status der Bestätigung und Fehler (falls vorhanden)

Die Funktion JSON Validate prüft die Übereinstimmung des JSON Inhalts vJson mit den im JSON Schema vSchema definierten Regeln. Bei ungültigem JSON gibt die Funktion eine ausführliche Beschreibung der Fehler zurück.

In vJson übergeben Sie ein JSON Objekt mit dem JSON Inhalt, der bestätigt werden soll. 

Hinweis: Bestätigen eines JSON String bedeutet die Überprüfung, ob er die in einem JSON Schema definierten Regeln befolgt. Das unterscheidet sich von der Überprüfung, ob das JSON "well-formed" ist. Diese wird mit dem Befehl JSON Parse ausgeführt.

In vSchema übergeben Sie das JSON Schema, das zur Bestätigung verwendet werden soll. Weitere Informationen zum Erstellen eines JSON Schema erhalten Sie unter der Web Site json-schema.org.

Hinweis: 4D verwendet zum Bestätigen eines JSON Objekts die im Dokument JSON Schema Validation beschriebene Norm (ist noch im Entwurfsstatus und kann noch erweitert werden). 4D aktuelle Implementation basiert auf Version 4 des Entwurfsstatus.

Ist das JSON Schema nicht gültig, gibt 4D ein Objekt Null zurück und generiert einen Fehler, der sich über eine Fehlerverwaltungsmethode abfangen lässt.

Die Funktion JSON Validate gibt ein Objekt mit dem Status der Bestätigung zurück. Es kann folgende Eigenschaften enthalten:

Name der EigenschaftTypBeschreibung
successBooleanWahr, wenn vJson bestätigt wird, sonst falsch. Bei falsch wird auch die Eigenschaft errors zurückgegeben
errorsObjekt collectionListe der Fehlerobjekte, wenn vJson nicht bestätigt wird (siehe unten)

Jedes Fehlerobjekt der Collection errors enthält folgende Eigenschaften:

Name der EigenschaftTypBeschreibung
codeNummerFehlercode
jsonPathStringJSON Pfad, der sich in vJson nicht bestätigen lässt
lineNummerZeilennummer des Fehlers in der JSON Datei. Diese Eigenschaft wird gefüllt, wenn das JSON durch JSON Parse mit dem Parameter * analysiert wurde. Andernfalls wird die Eigenschaft weggelassen.
messageStringFehlermeldung
offsetNummerZeilenversatz des Fehlers in der JSON Datei. Diese Eigenschaft wird gefüllt, wenn das JSON durch JSON Parse mit dem Parameter * analysiert wurde. Andernfalls wird die Eigenschaft weggelassen.
schemaPathsStringJSON Pfad im Schema, der Bestätigungsfehler verursacht

Es können folgende Fehlermeldungen erscheinen:

CodeJSON KeywordMeldung
2multipleOfFehler beim Validieren des 'multipleOf' Schlüssels.
3maximumDer angegebene Wert sollte nicht größer sein als im Schema angegeben ("{s1}").
4exclusiveMaximumDer angegebene Wert sollte kleiner sein als im Schema angegeben ("{s1}").
5minimumDer angegebene Wert sollte nicht kleiner sein als im Schema angegeben ("{s1}").
6exclusiveMinimumDer angegebene Wert sollte größer sein als im Schema angegeben ("{s1}").
7maxLengthDer String ist länger als im Schema angegeben.
8minLengthDer String ist kürzer als im Schema angegeben.
9patternDer String "{s1}" stimmt nicht mit dem Muster im Schema überein:{s2}.
10additionalItemsFehler beim Validieren eines Arrays. JSON enthält mehr Elemente als im Schema angegeben.
11maxItemsDas Array enthält mehr Elemente als im Schema angegeben.
12minItemsDas Array enthält weniger Elemente als im Schema angegeben.
13uniqueItemsFehler beim Validieren eines Arrays. Elemente sind nicht einmalig. Eine weitere Instanz von "{s1}" befindet sich bereits im Array.
14maxPropertiesDie Anzahl der Eigenschaften ist größer als im Schema angegeben.
15minPropertiesDie Anzahl der Eigenschaften ist kleiner als im Schema angegeben.
16requiredDie erforderliche Eigenschaft "{s1}" fehlt.
17additionalPropertiesDas Schema erlaubt keine zusätzlichen Eigenschaften. Die Eigenschaft(en) {s1} sollte(n) entfernt werden.
18dependenciesDie Eigenschaft "{s1}" benötigt die Eigenschaft "{s2}".
19enumFehler beim Validieren des 'enum' Schlüssels. "{S1}" passt zu keinem enum-Element im Schema.
20typeFalscher Typ. Erwarteter Typ ist: {s1}
21oneOfmanyFehler beim Validieren des 'oneOf' Schlüssels. Json passt zu mehr als einem Wert.
22oneOfnoneFehler beim Validieren des 'oneOf' Schlüssels. Json passt zu keinem Wert.
23notFehler beim Validieren des 'not' Schlüssels. Das Json ist gültig für den Wert von 'not'.
24formatDer String passt nicht zu ("{s1}")

Ein JSON Objekt mit Schema bestätigen und - falls vorhanden - die Liste der Bestätigungsfehler erhalten. Die Fehlerzeilen und Meldungen in einer Textvariablen speichern:

 C_OBJECT($oResult)
 $oResult:=JSON Validate(JSON Parse(myJson;*);mySchema)
 If($oResult.success) //Bestätigung erfolgreich
    ...
 Else //Bestätigung fehlgeschlagen
    C_LONGINT($vLNbErr)
    C_TEXT($vTerrLine)
    $vLNbErr:=$oResult.errors.length ///Fehlernummer erhalten
    ALERT(String($vLNbErr)+" Bestätigungsfehler gefunden.")
    For($i;0;$vLNbErr)
       $vTerrLine:=$vTerrLine+$oResult.errors[$i].message+" "+String($oResult.errors[$i].line)+Carriage return
    End for
 End if

Hinweis: Für dieses Beispiel muss Objektnotation aktiviert sein (siehe Seite Kompatibilität).



Siehe auch 

How to create a JSON schema
JSON Parse
JSON schema validation keywords on json-schema.org

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: JSON
Nummer: 1456

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v16 R4

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)