XProfan X4 unterstützt das Datenaustausch-Format JSON!
Wem der Begriff JSON nichts sagt, der bemühe bitte eine Suchmaschin seiner Wahl. (In der XProfan-Hilfe werde ich JSON natürlich kurz erklären.)
Für den Rest hier eine kurze Übersich der Funktionen:
Es bedeuten in der Syntax:
js: Integer - Handle zu einem Json-Objekt oder einer JSon-Liste
filename: string - Dateiname (ggf. mit Pfad)
json: string - Ein Json-Objekt als String
name: string - Name eines Json-Attributes (mögliche Attribute: String, Number, Boolean, Null, Object oder List)
string: string - beliebiger String-Wert
wert: integer/double - beliebiger numerischer Wert
obj - integer: Integer - Handle zu einem Json-Objekt
lst - integer: Handle zu einer Json-Liste
js = Create("JSON"[, filename])
Ohne filename wird ein leeres Json-Objekt angelegt, mit filename wird das Objekt aus der Datei, die ein Json-Objekrt als String entrhalten muss, eingelesen.
json = Json("TEXT", js, mode)
Das Json-Objekt js wird als Json-Sting ausgegegeben. Mode 0: als eine Zeile / mode 1: in besser lesbarer Form
Json("ADDSTRING", js, [name,] string)
Dem Objekt oder der List js wird ein String als Attribut hinzugefügt. Im Falle einer Liste wird kein Attributsname benötigt.
Json("ADDNUMBER", js, [name,] wert)
Dem Objekt oder der List js wird ein numerischer Wert als Attribut hinzugefügt. Im Falle einer Liste wird kein Attributsname benötigt.
Json("ADDBOOL", js, [name,] wert)
Dem Objekt oder der List js wird ein boolscher Wert als Attribut hinzugefügt. Im Falle einer Liste wird kein Attributsname benötigt. Da XProfan keinen passenden Datentyp kennt steht der Wert 0 für false und 1 für true.
Json("ADDOBJECT", js, [name,] obj)
Dem Objekt oder der List js wird ein Json-Objekt als Attribut hinzugefügt. Im Falle einer Liste wird kein Attributsname benötigt.
Json("ADDLIST", js, name, lst)
Dem Objekt js wird eine JSon-Liste hinzugefügt. Einer Liste kann keine Liste als direktes Child hinzugefügt werden.
string = Json("GETSTRING", js, [name|idx])
Ein String wird aus dem Objekt oder der Liste js gelesen. Beim Objekt wird der Attributsname benötigt, bei der Liste der Index in der Liste.
wert = Json("GETNUMBER", js, [name|idx])
Ein numerischer Wert wird aus dem Objekt oder der Liste js gelesen. Beim Objekt wird der Attributsname benötigt, bei der Liste der Index in der Liste.
integer = Json("GETBOOL", js, [name|idx])
Ein boolscher Wert wird aus dem Objekt oder der Liste js gelesen. Beim Objekt wird der Attributsname benötigt, bei der Liste der Index in der Liste. Das Ergebnis ist 0 oder 1.
js = Json("GETOBJECT", js, [name|idx])
Ein Objekt wird aus dem Objekt oder der Liste js gelesen. Beim Objekt wird der Attributsname benötigt, bei der Liste der Index in der Liste.
js = Json("GETLIST", js, name)
Ein Liste wird aus dem Objekt js gelesen.
js = Json("NEWLIST", name)
Eine leere JSon-Liste wird erzeugt.
Json("WRITE", js, filename)
Das Json-Objekt js wird als Json-Sting in eine Datei geschrieben. Ideal für den Datenaustausch mit anderen Programmen.
integer = Json("COUNT", js)
Die Anzahl der Elemente bzw. Attribute einer Liste oder eines Objektes wird ausgegeben.
text = Json("ENUM", js)
Das komplette Json-Objekt js wird in eine Textzeile geschriebeb bzw. Zeile für Zeile (Attribut für Attribut/Element für Element) in die Listboxliste geschrieben.
Bei der Textzeile sind die einzelnen Attribute/Elemente durch ein ";" getrennt.
Eine Zeile beginnt, je nach Verschatelungstiefe mit mehreren Leerzeichen (zwei pro Ebene) und einer Ziffer für den Typ des Attributs/Ements gefolgt von einem "|". Dann folgen Name/Index und Wert, getrennt durch einen ":".
Bei den Typen bedeuten: 1=Number/2=String/3=Boolean/4=null/5=Liste/6=Objekt. Bei einer Liste steht als Wert ihr Handle in eckiger Klammer, bei einem Objekt sein Wert in geschweifter Klammer.
Das soll fürs Erste genügen.
FROHE OSTERN!
Roland