OSL ‐ Json Handling - Mistium/Origin-OS GitHub Wiki
About
Json is a major part of large data storage in osl. It allows for much more complex data structures over basic variables
OSL has array documentation here: Array Documentation
Defining Json objects and arrays
Do not use spaces outside of quotation marks, it can mess up the parsing
object = {"key":"data","key2":"data2"}
array = ["data","data2","data3"]
// this is good json
object = {"key":"data", "key2":"data2"}
array = ["data", "data2", "data3"]
// this json could break your program
You can store arrays in arrays 😱
array = [["data","data2"],"data3","data4"]
Official JSON docs: Json Documentation
Setting json array items
array[index] = "data"
Setting json keys
// main recommended methods
object.key = "data"
object["key"] = "data"
// [] may be slower
// other methods
object."key" = "data"
object.["key"] = "data"
object.key("key") = "data"
object.item("key") = "data"
Examples
array = ["data",["data2","data3"]]
temp = array[2]
temp[2] = "data4"
array[2] = temp
If you run the above code, array is now equal to ["data",["data2","data4"]]
ARRAY INDEXES START AT 1!!
// newest syntax
item_of_array = array[index]
// legacy supported syntax
item_of_array = array.[index]
// oldest syntax
item_of_array = array.item(index)
Getting from an object
// suggested:
key_of_object = object["key"]
// fastest
key of object = object.key
// legacy
key_of_object = object."key"
key_of_object = object.key("key")
Finding index in array
// you can find an index of an item in an array in 2 ways
log array.index(value)
log array."value"
// both do the same thing
// only the first one allows you to use a variable in the input, the second is static