I don't remember if I ever posted something about the json library in the old forum - the one that crashed. But it's very easy to use and can be used for saving and loading most n7 tables. You can read more about the file format here: https://en.wikipedia.org/wiki/JSON
Edit I wrote "most tables". You can assign functions to variabels in an n7 table, and json doesn't support that ofcourse.
Code:
' json_example.n7
' ---------------
' Using the json library you can turn "any" table into a json string. You can save this string to
' file and load it again to get an exact replica of the original table. So it's a very handy library
' and file format.
include "json.n7"
' Let's say you want to save the player's progress in a game.
data = []
data.lastSaved = time()
data.score = 1349
data.name = "Marcus"
data.level = 5
data.levelScores = [1439, 5131, 1486, 394]
data.position = [x: 10, y: 15]
' Create a file for saving.
f = createfile("savedata.json")
if file(f)
' Use JSON_ToString to create a json string and write it to the file.
write file f, JSON_ToString(data)
free file f
' Use JSON_FromFile (there's also JSON_FromString) to load the data into a variable.
data = JSON_FromFile("savedata.json")
' Print out the information loaded from file.
t = datetime(data.lastSaved)
pln "lastSaved = " + t.year + "-" + str(t.month, 2) + "-" + str(t.day, 2) +
" " + str(t.hour, 2) + ":" + str(t.minute, 2) + ":" + str(t.second)
pln "score = " + data.score
pln "name = " + data.name
pln "level = " + data.level
pln "levelScores[2] = " + data.levelScores[2]
pln "position = " + data.position.x + ", " + data.position.y
else
pln "Couldn't create file!"
endif
system "pause"
Edit I wrote "most tables". You can assign functions to variabels in an n7 table, and json doesn't support that ofcourse.