nun ist es soweit, ich bin stolzer Besitzer von SpiderBasic und frickel an meinem ersten Projekt herum.
Bei der Kommunikation mit einem PHP Modul stoße ich auf ein Problem bzgl. des JSON Formats.
Ich kodiere in einem PHP Modul Userdaten zu einem JSON-String. Diesen JSON String soll SpiderBasic in eine Liste extrahieren.
Offenbar weichen die Formatierungen hier aber ab, wenn ich mir den JSON-String aus der Spider-Hilfe ansehe:
Code: Alles auswählen
"[ {" + Chr(34) + "x" + Chr(34) + ": 10, " + Chr(34) + "y" + Chr(34) + ": 20}, " +
"{" + Chr(34) + "x" + Chr(34) + ": 30, " + Chr(34) + "y" + Chr(34) + ": 50}, " +
"{" + Chr(34) + "x" + Chr(34) + ": -5, " + Chr(34) + "y" + Chr(34) + ": 100} ]
Code: Alles auswählen
[{"users_id":"1011","accesslevel":"0","firstname":"Hans","lastname":"Wurst","email":"grillwurst@meika.de"},{"users_id":"1012","accesslevel":"1","firstname":"Hans2","lastname":"Wurst2","email":"grillwurst2@meika.de"}]
Ihr müsst dazu den JSON String in eine lokale Textdatei kopieren. Das Testprogramm lädt diese dann per FileRequester() ein.
Code: Alles auswählen
Structure User
Userid.s
Accesslevel.s
Firstname.s
Lastname.s
Email.s
EndStructure
Global Input.s
Procedure ReadCallback(Status, Filename$, File, Size)
If Status = #PB_Status_Loaded
Debug "File: " + Filename$ + " - Size: " + Size + " bytes"
Input = ReadString(0, #PB_File_IgnoreEOL)
CloseFile(0)
ElseIf Status = #PB_Status_Error
Debug "Error when loading the file: " + Filename$
EndIf
EndProcedure
Procedure OpenFileRequesterCallback()
If NextSelectedFile()
ReadFile(0, SelectedFileID(), @ReadCallback(), #PB_LocalFile)
EndIf
EndProcedure
Procedure ChooseFileEvent()
OpenFileRequester("*.txt", @OpenFileRequesterCallback())
EndProcedure
Procedure ExtractJSON()
Debug Input
NewList Users.User()
ParseJSON(0, Input)
ExtractJSONList(JSONValue(0), Users())
ForEach Users()
Debug Users()\Userid + ", " + Users()\Accesslevel + ", " + Users()\Firstname + ", " + Users()\Lastname + ", " + Users()\Email
Next
EndProcedure
OpenWindow(0, 0, 0, 300, 100, "Read file example", #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 10, 280, 30, "Choose a file...")
ButtonGadget(1, 10, 60, 280, 30, "Extract JSON")
BindGadgetEvent(0, @ChooseFileEvent())
BindGadgetEvent(1, @ExtractJSON())
Gruß
Kurzer