PHP JSON != SpiderBasic JSON?
Verfasst: 31.07.2020 21:06
Moin zusammen,
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:
und den JSON String, den mir PHP codiert:
Jedenfalls bekomme ich den String mit folgendem Programmschnipsel nicht dekodiert.
Ihr müsst dazu den JSON String in eine lokale Textdatei kopieren. Das Testprogramm lädt diese dann per FileRequester() ein.
Kann man da irgendwas machen ohne den ganzen JSON String auf das "SpiderBasic-Format" umformatieren zu müssen?
Gruß
Kurzer
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