The comfortable framework for making games in Wren
The json
module provides a simple interface to read and write json files and strings.
It contains the following classes:
static encode(object: Object): String
static encode(object: Object, options: Num): String
Transform the object to a Json encoded string. With default or custom options. Encoding only works for primitive data types (Bool, Map, Num, Null, List, String). If a non primitive object is passed, the encoder will call it’s toString method.
static decode(value: String, options: Num): Object
static decode(value: String): Object
Returns a new Json object with default or custom options.
static load(path: String): Object
static load(path: String, options: Num): Object
Reads the contents of a file in path
and returns a new Json object with default or custom options.
static save(path: String, object: Object)
static save(path: String, object: Object, options: Num)
This will encode the object and then save the result to a file specified in path
. With default or custom options.
A simple object made with only primitive data structures.
Json.encode({
"is": true
})
An object made with custom data structures.
import "json" for Json
class MyClass {
// override toString to provide a serializable representation
// of the object. This serialization will be called by the
// Json.encode() method.
toString { Json.encode(toMap) }
toMap { { "is": isTrue } }
isTrue { _isTrue }
construct new(isTrue) {
_isTrue = isTrue
}
}
var obj = MyClass.new(true)
// prints: { "is":true }
System.print(Json.encode(obj))
static nil: Num
No options selected.
static escapeSlashes: Num
This will encode solidus character (/
). When converting a Map
object to a String
. This encoding is optional and is useful when you need to embed JSON
inside HTML <script>
tags. By default DOME does not escape slashes.
static abortOnError: Num
By default DOME aborts when there is a JSON parsing error (triggers a Fiber.abort()
on parse error). Turn off this option if you want to capture the JsonError object.
Use Bitwise OR operator to select multiple options.
Json.decode(myString, JsonOptions.escapeSlashes | JsonOptions.abortOnError);
This object is returned on calls to Json.decode only if the JsonOptions.abortOnError
default behaviour is disabled and a parse error was found.
line: Num
Stores the last parsed line number.
position: Num
Stores the last parsed cursor position.
message: String
Stores the generated error message.
found: Bool
Tells if an error was found.