From c8ff83a39489072beb9f74de1b72be96f68c9264 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Thu, 29 Mar 2012 00:24:31 -0700 Subject: [PATCH] add relax option, a synonym for [loose_unicode, single_quotes, comments, ignore_bad_escapes] --- README.markdown | 4 ++++ src/jsx_utils.erl | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.markdown b/README.markdown index 1d501fc..24281eb 100644 --- a/README.markdown +++ b/README.markdown @@ -135,6 +135,10 @@ json escaping is lossy, it mutates the json string and repeated application can during decoding, ignore unrecognized escape sequences and leave them as is in the stream +#### `relax` #### + +relax is a synonym for `[loose_unicode, single_quotes, comments, ignore_bad_escapes]` + ### incomplete input ### diff --git a/src/jsx_utils.erl b/src/jsx_utils.erl index 71024d8..5402875 100644 --- a/src/jsx_utils.erl +++ b/src/jsx_utils.erl @@ -52,9 +52,16 @@ parse_opts([comments|Rest], Opts) -> parse_opts([json_escape|Rest], Opts) -> parse_opts(Rest, Opts#opts{json_escape=true}); parse_opts([dirty_strings|Rest], Opts) -> - parse_opts(Rest, Opts#opts{json_escape=true}); + parse_opts(Rest, Opts#opts{dirty_strings=true}); parse_opts([ignore_bad_escapes|Rest], Opts) -> parse_opts(Rest, Opts#opts{ignore_bad_escapes=true}); +parse_opts([relax|Rest], Opts) -> + parse_opts(Rest, Opts#opts{ + loose_unicode = true, + single_quotes = true, + comments = true, + ignore_bad_escapes = true + }); parse_opts(_, _) -> {error, badarg}. @@ -69,7 +76,8 @@ valid_flags() -> comments, json_escape, dirty_strings, - ignore_bad_escapes + ignore_bad_escapes, + relax ].