es geht um LoadJSON().
Folgender Code läuft unter PureBasic (da klappt alles) und (eigentlich auch) unter SpiderBasic.
Bei PureBasic liegt die JSON Datei auf Laufwerk D:\. Bei SpiderBasic liegt sie im selben Verzeichnis wie der Sourcecode. Beides starte ich per F5 aus der IDE, aber nur unter PureBasic wird mir die Struktur gefüllt und im Debugfenster angezeigt.
Unter Spider wird mir zwar bei Debug IsJSON(0) #True angezeigt, aber die Struktur wird nicht gefüllt.
Code: Alles auswählen
EnableExplicit
Structure structGadgetDef
sType.s ; iGadgetType.i
EndStructure
Structure structLayout
Map mpGadgets.structGadgetDef()
EndStructure
Global stJson.structLayout
CompilerIf #PB_Compiler_Processor = #PB_Processor_JavaScript
; SpiderBasic
LoadJSON(0, "frm_main2.txt")
CompilerElse
; PureBasic
LoadJSON(0, "D:\frm_main2.txt")
CompilerEndIf
Debug IsJSON(0)
ExtractJSONStructure(JSONValue(0), @stJson, structLayout)
ForEach stJson\mpGadgets()
Debug stJson\mpGadgets()\sType
Next
Code: Alles auswählen
{
"mpGadgets": {
"FR1": {
"sType": "Test 1"
},
"FR2": {
"sType": "Test 2"
}
}
}
Markus
PS: Folgendes (angepasste) ReadFile-Beispiel aus der SpiderBasic Hilfe funktioniert einwandfrei.
Code: Alles auswählen
Procedure ReadCallback(Status, Filename$, File, Size)
If Status = #PB_Status_Loaded
While Eof(0) = 0
Debug ReadString(0)
Wend
CloseFile(0)
ElseIf Status = #PB_Status_Error
Debug "Error when loading the file: " + Filename$
EndIf
EndProcedure
ReadFile(0, "frm_main2.txt", @ReadCallback())