| OPTIONAL |
| EXPERIMENTAL |
| SYNOPSIS |
| |
| mixed json_parse(string jsonstring) |
| |
| DESCRIPTION |
| This efun parses the JSON object encoded as string in <jsonstr> into a |
| suitable LPC type. |
| |
| Handles the following JSON types: |
| <null> -> int (0) |
| <boolean> -> int (0 or 1) |
| <int | int64> -> int |
| <double> -> float |
| <string> -> string |
| <object> -> mapping |
| <array> -> arrays |
| All other JSON types cause a runtime error. |
| |
| The JSON object can nest other JSON objects. |
| |
| The function is available only if the driver is compiled with Iksemel |
| support. In that case, __JSON__ is defined. |
| |
| LIMITATIONS |
| 64 bit wide integers can only be parsed losslessly on hosts with |
| a 64 bit wide LPC int and json-c library newer than 0.90. |
| |
| BUGS |
| __FLOAT_MIN__ is not serialized/parsed losslessly. |
| |
| EXAMPLES |
| json_parse("42") -> 42 |
| json_parse("42.0") -> 42.0 |
| json_parse("\"hello world\\n\"") -> "hello world\n" |
| json_parse("[ 1, 2, 3, 4, 5, 6 ]") -> ({1,2,3,4,5,6}) |
| json_parse("{ \"test 2\": 42.000000, \"test 1\": 42 }") |
| -> ([ "test 1": 42, "test 2": 42.0 ]) |
| |
| HISTORY |
| Added in LDMud 3.5.0 |
| |
| SEE ALSO |
| json_serialize(E) |