Browse Source

undefined_as_null option: add tests; add description to README

Bartosz Kołodziej 8 years ago
parent
commit
feff1311e2
2 changed files with 9 additions and 0 deletions
  1. 4 0
      README.md
  2. 5 0
      test/jsone_encode_tests.erl

+ 4 - 0
README.md

@@ -124,6 +124,10 @@ Usage Example
 > jsone:encode({[{123, <<"value">>}]}, [{object_key_type, scalar}]).
 <<"{\"123\":\"value\"}">>
 
+% 'undefined_as_null' option allows encoding atom undefined as null
+> jsone:encode(undefined,[undefined_as_null]).
+<<"null">>
+
 %% Pretty Print
 > Data = [true, #{<<"1">> => 2, <<"array">> => [[[[1]]], #{<<"ab">> => <<"cd">>}, false]}, null].
 > io:format("~s\n", [jsone:encode(Data, [{indent, 1}, {space, 2}])]).

+ 5 - 0
test/jsone_encode_tests.erl

@@ -242,6 +242,11 @@ encode_test_() ->
               ?assertMatch({error, {badarg, _}}, jsone_encode:encode({[{1, 2}]})),
               ?assertMatch({error, {badarg, _}}, jsone_encode:encode({[{"1", 2}]}))
       end},
+     {"undefined_as_null option",
+      fun() ->
+              ?assertEqual({ok,<<"null">>},          jsone_encode:encode(undefined,[undefined_as_null])), % OK
+              ?assertEqual({ok,<<"\"undefined\"">>}, jsone_encode:encode(undefined,[])) % OK
+      end},
 
      %% Pretty Print
      {"space",