Hallo,
Da RGH die Funktion Json("Parse", text) in der Hilfe vergessen hatte, möchte ich
hier ein kleines Beispiel zeigen. Da eine fremde Json-Datei sich einfach nicht lesen
ließ, bin ich auf Parse gestossen.
Anbei eine Code mit einer einfachen Liste und anschließend einer Liste mit Objekten :
Code
/*
{
"subject": "Hallo!",
"body": "Ein kleiner Test!",
"attachments": [
"Test.txt",
"Test2.pdf",
"Bild1.bmp"
]
}
*/
Declare Long js, anz, liste, obj, String text, jsonstr
Cls
/*
js = json("Parse", text)
Es wird ein Json-Objekt aus dem String text erzeugt. text muss ein gültiges Json-Objekt in Textform sein.
*/
jsonstr = "{\qsubject\q:\qHallo !\q,\qbody\q:\qEin kleiner Test!\q,\qattachments\q: [\qTest.txt\q,\qTest2.pdf\q,\qBild1.bmp\q]}"
js = JSon("Parse", jsonstr)
anz = JSon("Count", js)
Print "subject : ", Json("GetString", js, "subject")
Print "body : ", JSon("GetString", js, "body")
liste = JSon("GetList", js, "attachments")
anz = JSon("Count", liste)
Print "Attachments :"
Print "-------------"
WhileLoop 0, anz -1
Print "Datei : ", json("GetString",liste, Str$(&LOOP))
EndWhile
Waitkey
'******************************************************************************
' und hier eine Liste mit Objekten :
/*
{
"subject": "Hallo!",
"body": "Ein kleiner Test!",
"attachments": [
{ "1": "Test.txt" },
{ "2": "Test2.pdf" },
{ "3": "Bild1.bmp" }
]
}
*/
Declare Long js, anz, liste, obj, String text, jsonstr
Cls
/*
js = json("Parse", text)
Es wird ein Json-Objekt aus dem String text erzeugt. text muss ein gültiges Json-Objekt in Textform sein.
*/
jsonstr = "{\qsubject\q:\qHallo !\q,\qbody\q:\qEin kleiner Test!\q,\qattachments\q: [{\q1\q:\qTest.txt\q},{\q2\q:\qTest2.pdf\q},{\q3\q:\qBild1.bmp\q}]}"
js = JSon("Parse", jsonstr)
anz = JSon("Count", js)
Print "subject : ", Json("GetString", js, "subject")
Print "body : ", JSon("GetString", js, "body")
liste = JSon("GetList", js, "attachments")
anz = JSon("Count", liste)
Print "Attachments :"
Print "-------------"
WhileLoop 0, anz - 1
obj = JSon("GetObject", liste, Str$(&LOOP))
Print json("GetString",obj, Str$(&LOOP + 1))
EndWhile
Waitkey
Alles anzeigen
Viel Spaß damit.