Erljson - Erlang json parser
A JSON parser from json (binary) to erlang maps. This is a pretty simple implementation of https://tools.ietf.org/html/rfc7159
Usage
Erljson has a very simple api. For example decode/1 accepts binary and returns map in case valid json binary provided.
On other hand encode/1 accepts map and returns json binary.
erljson:decode
Eshell V8.0.2 (abort with ^G)1> erljson:decode(<<"{\"key1\": \"value\", \"key2\": true, \"key3\": []}">>).``#{<<"key1">> => <<"value">>,<<"key2">> => true,<<"key3">> => []}
note on decode
In case invalid json provided decode throws exception containing following tuple : throw({error, invalid_json, Binary}).
Where Binary is the one which was passed as an argument to decode.
erljson:encode
Eshell V8.0.2 (abort with ^G)1> erljson:encode(#{<<"key1">> => <<"value">>,<<"key2">> => true,<<"key3">> => []}).<<"{\"key1\":\"value\",\"key2\":true,\"key3\":[]}">>
Todo
-
At this moment an implementation does not set explicit limits on :
- the size of texts that it accepts;
- the maximum depth of nesting;
- the range and precision of numbers;
- the length and character contents of strings.
- Performance wasn't checked and considered yet.
- Explicit support for UTF-8 characters wasn't tested.