diff --git a/examples/jsx_parser.erl b/examples/jsx_parser.erl index b9b5ea8..a24ae8b 100644 --- a/examples/jsx_parser.erl +++ b/examples/jsx_parser.erl @@ -85,7 +85,9 @@ event({Type, Value}, [{key, Key}, Object|Stack]) -> event({Type, Value}, [Array|Stack]) when is_list(Array) -> [[?MODULE:Type(Value)] ++ Array] ++ Stack; -event(end_of_stream, [Stack]) -> +event(reset, _) -> + []; +event(end_of_json, [Stack]) -> Stack. diff --git a/examples/jsx_prettify.erl b/examples/jsx_prettify.erl index db55af9..f353040 100644 --- a/examples/jsx_prettify.erl +++ b/examples/jsx_prettify.erl @@ -88,7 +88,9 @@ jsx_event({Type, Value}, {Acc, Indent, Level, new}) -> jsx_event({Type, Value}, {Acc, Indent, Level, key}) -> {Acc ++ format(Type, Value), Indent, Level, value}; -jsx_event(end_of_stream, {Acc, _, _, _}) -> +jsx_event(reset, {_, Indent, _, _}) -> + {[], Indent, 0, new}; +jsx_event(end_of_json, {Acc, _, _, _}) -> Acc. diff --git a/examples/jsx_stream_parser.erl b/examples/jsx_stream_parser.erl index f9f6516..ce079f9 100644 --- a/examples/jsx_stream_parser.erl +++ b/examples/jsx_stream_parser.erl @@ -58,7 +58,9 @@ event({key, "_id"}, 1) -> event({string, String}, capture) -> throw({ok, String}); -event(end_of_stream, _) -> +event(reset, _) -> + 0; +event(end_of_json, _) -> throw(not_found); event(_, Level) ->