From 216b97df550b2a2bfca78ae378e42a47f11274b6 Mon Sep 17 00:00:00 2001 From: Max Lapshin Date: Tue, 19 Nov 2013 14:05:51 +0400 Subject: [PATCH] handle jsx:encode([{key,value}]) --- src/jsx_encoder.erl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/jsx_encoder.erl b/src/jsx_encoder.erl index 9d26464..b854e8d 100644 --- a/src/jsx_encoder.erl +++ b/src/jsx_encoder.erl @@ -68,6 +68,8 @@ value(Int, {Handler, State}, _Config) when is_integer(Int) -> value(Literal, {Handler, State}, _Config) when Literal == true; Literal == false; Literal == null -> Handler:handle_event({literal, Literal}, State); +value(String, {Handler, State}, Config) when is_atom(String) -> + Handler:handle_event({string, clean_string(atom_to_binary(String,latin1), {Handler, State}, Config)}, State); value([{}], {Handler, State}, _Config) -> Handler:handle_event(end_object, Handler:handle_event(start_object, State)); value([], {Handler, State}, _Config) -> @@ -163,6 +165,7 @@ encode(Term, Config) -> start(Term, {jsx, []}, jsx_config:parse_config(Config)). pre_encoders_test_() -> Term = [ {<<"object">>, [ + {atomkey, atomvalue}, {<<"literals">>, [true, false, null]}, {<<"strings">>, [<<"foo">>, <<"bar">>, <<"baz">>]}, {<<"numbers">>, [1, 1.0, 1.0e0]} @@ -173,6 +176,7 @@ pre_encoders_test_() -> [ start_object, {key, <<"object">>}, start_object, + {key, <<"atomkey">>}, {string, <<"atomvalue">>}, {key, <<"literals">>}, start_array, {literal, true}, {literal, false}, {literal, null}, end_array, @@ -192,6 +196,7 @@ pre_encoders_test_() -> [ start_object, {key, <<"object">>}, start_object, + {key, <<"atomkey">>}, {string, <<"atomvalue">>}, {key, <<"literals">>}, start_array, end_array, {key, <<"strings">>}, start_array, end_array, {key, <<"numbers">>}, start_array, end_array, @@ -213,6 +218,7 @@ pre_encoders_test_() -> [ start_object, {key, <<"object">>}, start_object, + {key, <<"atomkey">>}, {literal, false}, {key, <<"literals">>}, start_array, {literal, false}, {literal, false}, {literal, false}, end_array, @@ -232,6 +238,7 @@ pre_encoders_test_() -> [ start_object, {key, <<"object">>}, start_object, + {key, <<"atomkey">>}, {string, <<"atomvalue">>}, {key, <<"literals">>}, start_array, {string, <<"true">>}, {string, <<"false">>}, {string, <<"null">>}, end_array,