Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
JSON Validate
|
JSON Validate ( vJson ; vSchema ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
vJson | Objekt |
![]() |
JSON Objekt zum Bestätigen | |||||
vSchema | Objekt |
![]() |
Verwendetes JSON Schema zum Bestätigen von JSON Objekten | |||||
Funktionsergebnis | Objekt |
![]() |
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 Eigenschaft | Typ | Beschreibung |
success | Boolean | Wahr, wenn vJson bestätigt wird, sonst falsch. Bei falsch wird auch die Eigenschaft errors zurückgegeben |
errors | Objekt collection | Liste der Fehlerobjekte, wenn vJson nicht bestätigt wird (siehe unten) |
Jedes Fehlerobjekt der Collection errors enthält folgende Eigenschaften:
Name der Eigenschaft | Typ | Beschreibung |
code | Nummer | Fehlercode |
jsonPath | String | JSON Pfad, der sich in vJson nicht bestätigen lässt |
line | Nummer | Zeilennummer 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. |
message | String | Fehlermeldung |
offset | Nummer | Zeilenversatz 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. |
schemaPaths | String | JSON Pfad im Schema, der Bestätigungsfehler verursacht |
Es können folgende Fehlermeldungen erscheinen:
Code | JSON Keyword | Meldung |
2 | multipleOf | Fehler beim Validieren des 'multipleOf' Schlüssels. |
3 | maximum | Der angegebene Wert sollte nicht größer sein als im Schema angegeben ("{s1}"). |
4 | exclusiveMaximum | Der angegebene Wert sollte kleiner sein als im Schema angegeben ("{s1}"). |
5 | minimum | Der angegebene Wert sollte nicht kleiner sein als im Schema angegeben ("{s1}"). |
6 | exclusiveMinimum | Der angegebene Wert sollte größer sein als im Schema angegeben ("{s1}"). |
7 | maxLength | Der String ist länger als im Schema angegeben. |
8 | minLength | Der String ist kürzer als im Schema angegeben. |
9 | pattern | Der String "{s1}" stimmt nicht mit dem Muster im Schema überein:{s2}. |
10 | additionalItems | Fehler beim Validieren eines Arrays. JSON enthält mehr Elemente als im Schema angegeben. |
11 | maxItems | Das Array enthält mehr Elemente als im Schema angegeben. |
12 | minItems | Das Array enthält weniger Elemente als im Schema angegeben. |
13 | uniqueItems | Fehler beim Validieren eines Arrays. Elemente sind nicht einmalig. Eine weitere Instanz von "{s1}" befindet sich bereits im Array. |
14 | maxProperties | Die Anzahl der Eigenschaften ist größer als im Schema angegeben. |
15 | minProperties | Die Anzahl der Eigenschaften ist kleiner als im Schema angegeben. |
16 | required | Die erforderliche Eigenschaft "{s1}" fehlt. |
17 | additionalProperties | Das Schema erlaubt keine zusätzlichen Eigenschaften. Die Eigenschaft(en) {s1} sollte(n) entfernt werden. |
18 | dependencies | Die Eigenschaft "{s1}" benötigt die Eigenschaft "{s2}". |
19 | enum | Fehler beim Validieren des 'enum' Schlüssels. "{S1}" passt zu keinem enum-Element im Schema. |
20 | type | Falscher Typ. Erwarteter Typ ist: {s1} |
21 | oneOfmany | Fehler beim Validieren des 'oneOf' Schlüssels. Json passt zu mehr als einem Wert. |
22 | oneOfnone | Fehler beim Validieren des 'oneOf' Schlüssels. Json passt zu keinem Wert. |
23 | not | Fehler beim Validieren des 'not' Schlüssels. Das Json ist gültig für den Wert von 'not'. |
24 | format | Der 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).
How to create a JSON schema
JSON Parse
JSON schema validation keywords on json-schema.org
Produkt: 4D
Thema: JSON
Nummer:
1456
Erstellt: 4D v16 R4
4D Programmiersprache ( 4D v20 R7)