allow atoms in erlang terms to be converted to strings in json objects

and arrays. `true`, `false` and `null` excluded
This commit is contained in:
alisdair sullivan 2013-12-18 02:13:50 +00:00
parent 3bb65e9bab
commit 95b2d9b628
4 changed files with 42 additions and 3 deletions

View file

@ -115,6 +115,8 @@ value([{string, String}|Tokens], Handler, Stack, Config) when is_binary(String)
end;
value([String|Tokens], Handler, Stack, Config) when is_binary(String) ->
value([{string, String}] ++ Tokens, Handler, Stack, Config);
value([String|Tokens], Handler, Stack, Config) when is_atom(String) ->
value([{string, atom_to_binary(String, utf8)}] ++ Tokens, Handler, Stack, Config);
value([{raw, Raw}|Tokens], Handler, Stack, Config) when is_binary(Raw) ->
value((jsx:decoder(?MODULE, [], []))(Raw) ++ Tokens, Handler, Stack, Config);
value([], Handler, Stack, Config) ->