JSON-Funktionen

Victory unterstützt mit vielen Funktionen das kompakte Datenformat JSON (JavaScript Object Notation). Mit Hilfe von JSON lassen sich strukturierte Daten in einer kompakten lesbaren Zeichenkette abbilden. JSON formatierte Zeichenketten werden häufig zum Datenaustausch zwischen Anwendungen (z.B. Webservice und Client-Anwendungen) oder auch zum Speichern und Laden von Informationen verwendet. JSON kann als einfachere Alternative zu XML gesehen werden, da XML im Vergleich einen größeren Overhead und eine schlechtere Lesbarkeit aufweist.

JSON kennt sechs Datentypen: Null-Wert, Boolean, Number, String, Array und Object.

Datentyp

Beschreibung

Null-Wert

Besitzt ein Element keinen Wert, so wird es mit dem Schlüsselwort null belegt.

Boolean

Boolsche Elemente besitzen den Wert true und false.
Entspricht einem value in Victory.

Number

Numerische Elemente werden als Ziffernfolge 0-9 und falls notwendig dem Dezimalpunkt . als Nachkommastellentrenner dargestellt.
Entspricht einem value in Victory.

String

Ein Zeichenketten-Element beginnt mit " und endet mit " - dazwischen steht der eigentliche Text.
Entspricht einem string in Victory.

Array

Ein Array beginnt mit [ und endet mit ]. Es enthält eine durch Komma , getrennte Liste von Elementen gleichen oder verschiedenen Datentyps. Leere Arrays sind erlaubt.
Ein Array ist eine geordnete Liste, da die Elemente über deren Index angesprochen werden.
Entspricht einem JSONARRAY-Objekt in Victory.

Object

Ein Objekt beginnt mit { und endet mit }. Es enthält eine durch Komma , geteilte Liste von Objekt-Eigenschaften. Leere Objekte sind erlaubt.
Ein Objekt ist eine ungeordnete Liste, da die Elemente über deren Namen angesprochen werden.
Eine Objekt-Eigenschaft besteht aus einem Namen und einem Wert, die durch einen Doppelpunkt : getrennt werden. Der eindeutige Name wird als Zeichenkette zwischen zwei " angegeben. Der Wert entspricht einem der sechs Datentypen.
Entspricht einem JSON-Objekt in Victory.

Um die Lesbarkeit zu erhöhen, darf eine JSON-formatierte Zeichenkette zusätzliche Füll-Leerzeichen und Zeilenumbrüche enthalten. Hierzu bietet Victory die Funktionen JsonExpand, JsonToString und JsonArrayToString, mit denen unstrukturierte JSON-Zeichenketten in strukturierte JSON-Zeichenketten gewandelt werden können und auch Funktionen, wie JsonCompact, JsonToStringCompact und JsonArrayToStringCompact, die unnötige Füllzeichen aus einer JSON-Zeichenkette entfernen, um eine kompakte JSON-Zeichenkette zu erhalten.

Hier als Beispiel eine kompakte JSON-Zeichenkette:
{"Produktliste":{"Produktgruppe":"PVC-isolierte Starkstromkabel 0,6/1kV","Produkt":[{"Type":"E-YY 4 x 6 RE" },{"Type":"E-YY 1 x 16 RE"}]}}

und eine strukturierte JSON-Zeichenkette:
{
 "Produktliste": {
   "Produktgruppe": "PVC-isolierte Starkstromkabel 0,6/1kV",
   "Produkt": [
     {
       "Type": "E-YY 4 x 6 RE",
       "Aderanzahl": 4,
       "Aussendurchmesser": 15,
       "Belastbarkeit (Erde)": 59,
       "Belastbarkeit (Luft)": 43,
       "Verfügbar": true
     },
     {
       "Type": "E-YY 1 x 16 RE",
       "Aderanzahl": 1,
       "Aussendurchmesser": 11,
       "Belastbarkeit (Erde)": 107,
       "Belastbarkeit (Luft)": 84,
       "Verfügbar": false
     }
   ]
 }
}

Erzeugen und Schließen von JSON-Objekten

Zum Anlegen eines JSON-Objekts gibt es verschiedene Funktionen: JsonCreate, JsonCreateFromFile und JsonCreateFromString. Da ein erzeugtes JSON-Objekt Arbeitsspeicher belegt, sollte es, wenn es nicht mehr benötigt wird, wieder geschlossen werden - hierzu dient die Funktion JsonClose.

Einfaches Verarbeiten von JSON-Objekten

Mit den JsonUpdate- und den JsonGet-Funktionen können Json-Elemente einfachst angelegt und ausgelesen werden. Da diese Funktionen mit Pfadangaben arbeiten, kann auch ein komplexes JSON-Objekt ohne großen Programmieraufwand schnell angelegt, mit neuen Werten versehen oder auch ausgelesen werden.

Einfache Funktionen für das schnelle Anlegen bzw. Neu besetzen von Json-Elementen

JsonUpdateBool, JsonUpdateNull, JsonUpdateNumber, JsonUpdateString

Einfache Funktionen für das schnelle Auslesen von Json-Elementen

JsonGetBool, JsonIsNull, JsonGetNumber, JsonGetString

Einfache Funktion für das Prüfen von Json-Elementen

JsonHasMember, JsonIsNull

Detailliertere Bearbeitung eines JSON-Objekts

Die Json-Funktionen sind in zwei Gruppen eingeteilt: JSON-Objekt bezogene und JSONARRAY-Objekt bezogene Funktionen. Auf diese Basisfunktionen kann zurückgegriffen werden, wenn die einfacheren JsonUpdate- bzw. JsonGet-Funktionen nicht  ausreichen, um eine Aufgabe zu lösen.

JSON-Objekt Funktionen

JsonAddArray, JsonAddBool, JsonAddNull, JsonAddNumber, JsonAddObject, JsonAddString
JsonInsertArray, JsonInsertBool, JsonInsertNull, JsonInsertNumber, JsonInsertObject, JsonInsertString
JsonDelete, JsonRename
JsonClose, JsonCreate, JsonCreateFromFile, JsonCreateFromString

JsonGetArray, JsonGetBoolJsonGetNumber, JsonGetObject, JsonGetString, JsonGetRoot, JsonGetSize, JsonGetArraySize, JsonGetType
JsonHasMember, JsonIsNull
JsonSetBool, JsonSetNull, JsonSetNumber, JsonSetString
JsonUpdateBool, JsonUpdateNull, JsonUpdateNumber, JsonUpdateString
JsonToString, JsonToStringCompact, JsonExpand, JsonCompact

JSONARRAY-Objekt Funktionen

JsonArrayAddArray, JsonArrayAddBool, JsonArrayAddNull, JsonArrayAddNumber, JsonArrayAddObject, JsonArrayAddString
JsonArrayInsertArray, JsonArrayInsertBool, JsonArrayInsertNull, JsonArrayInsertNumber, JsonArrayInsertObject, JsonArrayInsertString
JsonArrayClear, JsonArrayDelete
JsonArrayClose, JsonArrayCreate, JsonArrayCreateFromString
JsonArrayGetArray, JsonArrayGetBool, JsonArrayGetNumber, JsonArrayGetObject, JsonArrayGetSize, JsonArrayGetString, JsonArrayGetType
JsonArrayIsNull
JsonArraySetBool, JsonArraySetNull, JsonArraySetNumber, JsonArraySetString
JsonArrayLoadFromString, JsonArrayToString, JsonArrayToStringCompact