diff --git a/src/jsx.erl b/src/jsx.erl index 9a2c890..261409c 100644 --- a/src/jsx.erl +++ b/src/jsx.erl @@ -261,47 +261,5 @@ incremental_decode_loop({jsx, Event, Next}, Rest, Acc) -> incremental_decode_loop({error, {badjson, _Error}}, _Rest, _Acc) -> {error, badjson}. - - -multi_decode_test_() -> - [ - {"multiple values in a single stream", ?_assert( - multi_decode(multi_json_body(), []) =:= multi_test_result() - )} - ]. - - -multi_decode(JSON, Flags) -> - P = jsx:decoder([multi_term, iterate] ++ Flags), - multi_decode_loop(P(JSON), [[]]). - -multi_decode_loop({jsx, incomplete, _Next}, [[]|Acc]) -> - lists:reverse(Acc); -multi_decode_loop({jsx, end_json, Next}, [S|Acc]) -> - multi_decode_loop(Next(), [[]|[lists:reverse(S)] ++ Acc]); -multi_decode_loop({jsx, E, Next}, [S|Acc]) -> - multi_decode_loop(Next(), [[E] ++ S] ++ Acc). - - -multi_json_body() -> - <<"0 1 -1 1e1 0.7 0.7e-1 truefalsenull {} {\"key\": \"value\"}[] [1, 2, 3]\"hope this works\"">>. - -multi_test_result() -> - [[{integer, 0}], - [{integer, 1}], - [{integer, -1}], - [{float, 1.0e1}], - [{float, 0.7}], - [{float, 0.7e-1}], - [{literal, true}], - [{literal, false}], - [{literal, null}], - [start_object, end_object], - [start_object, {key, "key"}, {string, "value"}, end_object], - [start_array, end_array], - [start_array, {integer, 1}, {integer, 2}, {integer, 3}, end_array], - [{string, "hope this works"}] - ]. - -endif. \ No newline at end of file diff --git a/src/jsx_decoder.hrl b/src/jsx_decoder.hrl index 1b8b9fb..00bc8c0 100644 --- a/src/jsx_decoder.hrl +++ b/src/jsx_decoder.hrl @@ -289,8 +289,6 @@ maybe_done(<>, T, [object|Stack], Opts) -> key(Rest, T, [key|Stack], Opts); maybe_done(<>, T, [array|_] = Stack, Opts) -> value(Rest, T, Stack, Opts); -maybe_done(Rest, T, [], #opts{multi_term=true}=Opts) -> - emit([end_json], {start, Rest, T, [[], Opts]}); maybe_done(Rest, T, [], Opts) -> done(Rest, T, Opts); maybe_done(Bin, T, Stack, Opts) -> diff --git a/src/jsx_encoder.erl b/src/jsx_encoder.erl index eab5a3d..f27e649 100644 --- a/src/jsx_encoder.erl +++ b/src/jsx_encoder.erl @@ -133,8 +133,6 @@ maybe_done([], T, [], _Opts) -> emit([end_json, incomplete], {bad_json, [], T, []}); maybe_done([end_json], T, [], _Opts) -> emit([end_json, incomplete], {bad_json, [], T, []}); -maybe_done([end_json|Forms], T, [], #opts{multi_term=true}=Opts) -> - emit([end_json], {start, Forms, T, [Opts]}); maybe_done([end_object|Forms], T, [object|Stack], Opts) -> emit([end_object], {maybe_done, Forms, T, [Stack, Opts]}); maybe_done([end_array|Forms], T, [array|Stack], Opts) -> diff --git a/src/jsx_opts.hrl b/src/jsx_opts.hrl index 80a51ec..ee301be 100644 --- a/src/jsx_opts.hrl +++ b/src/jsx_opts.hrl @@ -23,7 +23,6 @@ %% opts record for decoder/encoder -record(opts, { - multi_term = false, loose_unicode = false, encoding = auto, escape_forward_slash = false, %% does nothing, used by encoder @@ -37,8 +36,6 @@ parse_opts(Opts) -> parse_opts([], Opts) -> Opts; -parse_opts([multi_term|Rest], Opts) -> - parse_opts(Rest, Opts#opts{multi_term=true}); parse_opts([loose_unicode|Rest], Opts) -> parse_opts(Rest, Opts#opts{loose_unicode=true}); parse_opts([iterate|Rest], Opts) ->