nachfolgend möchte ich Euch eine (meines Erachtens) einfache
Möglichkeit vorstellen, mit Hilfe des ScriptControls und COMate
JSON-Daten zu verarbeiten.
Zuerst erstellen wir ein Objekt von Typ ScriptControl...
Code: Alles auswählen
ScriptControl = COMate_CreateObject("ScriptControl")
Code: Alles auswählen
ScriptControl\SetProperty("Language = 'JScript'")
Code: Alles auswählen
var Person = {
"Vorname" : "Peter",
"Nachname" : "Parker",
"Hobbys" : [ "Klettern", "Verkleiden", "Spinnen" ]
};
Code: Alles auswählen
JSON = "var Person = {" +
Chr(34) + "Vorname" + Chr(34) + " : " + Chr(34) + "Peter" + Chr(34) + ", " +
Chr(34) + "Nachname" + Chr(34) + " : " + Chr(34) + "Parker" + Chr(34) + ", " +
Chr(34) + "Hobbys" + Chr(34) + " : [" + Chr(34) + "Klettern" + Chr(34) + ", " + Chr(34) + "Verkleiden" + Chr(34) + ", " + Chr(34) + "Spinnen" + Chr(34) + " ]" +
"};"
Code: Alles auswählen
JSON = ReplaceString(JSON, "'", "$0027")
Code: Alles auswählen
ScriptControl\Invoke("AddCode('" + JSON + "')")
Code: Alles auswählen
Debug "Vorname: " + ScriptControl\GetStringProperty("Eval('Person.Vorname')")
Debug "Nachname: " + ScriptControl\GetStringProperty("Eval('Person.Nachname')")
AnzahlHobbys = ScriptControl\GetIntegerProperty("Eval('Person.Hobbys.length')")
Debug "Hobbys:"
For HobbyCounter = 0 To AnzahlHobbys - 1
Debug ScriptControl\GetStringProperty("Eval('Person.Hobbys[" + Str(HobbyCounter) + "]')")
Next
Code: Alles auswählen
IncludeFile "[DeinPfadZu]\COMatePLUS.pbi" ; Anpassen
EnableExplicit
Define ScriptControl.COMateObject
Define JSON.s
Define AnzahlHobbys, HobbyCounter
ScriptControl = COMate_CreateObject("ScriptControl")
If ScriptControl
ScriptControl\SetProperty("Language = 'JScript'")
JSON = "var Person = {" +
Chr(34) + "Vorname" + Chr(34) + " : " + Chr(34) + "Peter" + Chr(34) + ", " +
Chr(34) + "Nachname" + Chr(34) + " : " + Chr(34) + "Parker" + Chr(34) + ", " +
Chr(34) + "Hobbys" + Chr(34) + " : [" +
Chr(34) + "Klettern" + Chr(34) + ", " + Chr(34) + "Verkleiden" + Chr(34) + ", " + Chr(34) + "Spinnen" + Chr(34) +
" ]" +
"};"
JSON = ReplaceString(JSON, "'", "$0027")
ScriptControl\Invoke("AddCode('" + JSON + "')")
Debug "Vorname: " + ScriptControl\GetStringProperty("Eval('Person.Vorname')")
Debug "Nachname: " + ScriptControl\GetStringProperty("Eval('Person.Nachname')")
AnzahlHobbys = ScriptControl\GetIntegerProperty("Eval('Person.Hobbys.length')")
Debug "Hobbys:"
For HobbyCounter = 0 To AnzahlHobbys - 1
Debug ScriptControl\GetStringProperty("Eval('Person.Hobbys[" + Str(HobbyCounter) + "]')")
Next
ScriptControl\Release()
Else
Debug "!ScriptControl"
EndIf
Grüße ... Kiffi