Nun hab ich da aber ein neues Problem :
Der Code von Stargate funktioniert eigentlich tadellos. Nur wenn keine Einträge bei Backup vorhanden sind,
gibt es einen Division by Zero Error.
Code: Alles auswählen
Structure MyStruc
Array files.s(0)
Array backup.s(0,0)
EndStructure
Define Text.s = ~"{\"files\": [\"d:\\\\text1.txt\",\"d:\\\\text2.txt\"], \"backup\": []}"
Define MyStruc.MyStruc
If ParseJSON(1, Text)
ExtractJSONStructure(JSONValue(1), @MyStruc, MyStruc)
Debug MyStruc\files(0)
Debug MyStruc\files(1)
maxBackup = ArraySize(MyStruc\backup(), 1)
maxFile = ArraySize(MyStruc\backup(), 2)
For i = 0 To maxBackup
For j = 0 To maxFile
Debug MyStruc\backup(i,j)
Next j
Next i
EndIf
Wie kann ich diesen Fehler umgehen, bzw. wie kann ich vorher herrausfinden, ob sich dort was befindet oder nicht ?
Edit :
Habs gefunden : JSONArraySize() war mein vermisster Freund
Code: Alles auswählen
Structure MyStruc
Array files.s(0)
Array backup.s(0,0)
EndStructure
Define Text.s = ~"{\"files\": [\"d:\\\\text1.txt\",\"d:\\\\text2.txt\"], \"backup\": []}"
Define MyStruc.MyStruc
If ParseJSON(1, Text)
ExtractJSONStructure(JSONValue(1), @MyStruc, MyStruc)
Debug MyStruc\files(0)
Debug MyStruc\files(1)
If JSONArraySize(GetJSONMember(JSONValue(1), "backup")) > 0
maxBackup = ArraySize(MyStruc\backup(), 1)
maxFile = ArraySize(MyStruc\backup(), 2)
For i = 0 To maxBackup
For j = 0 To maxFile
Debug MyStruc\backup(i,j)
Next j
Next i
EndIf
EndIf