diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index 2cca939..006cc22 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -246,10 +246,10 @@ string(<>, {Handler, State}, S, Opts) -> case S of [Acc, key|Stack] -> colon(Rest, {Handler, Handler:handle_event({key, ?end_seq(Acc)}, State)}, [key|Stack], Opts); + [_Acc, single_quote|_Stack] -> + ?error([<>, {Handler, State}, S, Opts]); [Acc|Stack] -> - maybe_done(Rest, {Handler, Handler:handle_event({string, ?end_seq(Acc)}, State)}, Stack, Opts); - [Acc, single_quote|Stack] -> - ?error([<>, {Handler, State}, S, Opts]) + maybe_done(Rest, {Handler, Handler:handle_event({string, ?end_seq(Acc)}, State)}, Stack, Opts) end; string(<>, {Handler, State}, S, Opts = #opts{single_quotes=true}) -> case S of