json
JSON encoder and decoder
Import
_ <- fat.extra.json
Methods
Name | Signature | Brief |
---|---|---|
toJson | (x: Any): Text | Build json from native types |
fromJson | (json: Text): Any | Parse a json to native types |
Usage Notes
"With great power comes great responsibility" -Peter Parker
Since FatScript alternatively accepts JSON-like syntax, fromJson
actually uses FatScript internal lexer/parser via eval, which is blazing fast, but may or not yield exactly what one is expecting from a JSON parser.
For example, once the bellow fragment is parsed, since null
in FatScript is absence of value, there would be no entry declarations for "prop":
"prop": null
Therefore, reading with fromJson
and writing back with toJson
is not necessarily an idempotent operation.
Heads Up!
The fromJson
method should be perfectly fine and safe for reading config files or reading back data stored via toJson
.
However, since fromJson
ingests data via $eval
a specially crafted file could implement a FatScript program and run arbitrary code!
If reading JSON files from an unknown source, to be on the safe side, you should make your own safety-driven parser.
if you have written an alternative JSON parser in FatScript and would like to share the reference here, see contributing document