v3.1.0
- Dialyzer and api spec improvements
v3.0
- drop support for OTP versions before 17.0
- remove definition options for disabling maps globally,
{return_maps, false}is still an accepted option todecode/2
v2.8.2
- enable
debug_infofor rebar3
v2.8.1
- enable
debug_infowhen used via mix - accept
erlang:timestampas input to the parser
v2.8.0
- add
JSX_FORCE_MAPSenv var for forcing decoding to maps rather than attempting to autodetect
v2.7.2
- fix an issue where tuples were assumed to be jsx ast and not checked
- mask a
function_clauseerror in encoder with abadargerror for api unity
v2.7.1
- support for milliseconds in datetimes
v2.7.0
return_tailoption- fixes for edoc generation
v2.6.2
- ensure maps are always enabled when compiling via mix
v2.6.1
- hex.pm maintenance release
v2.6.0
- equivalent to v2.5.3 but created for semver reasons
v2.5.3
- add a
mix.exsto be buildable by both mix and rebar - minor README updates
v2.5.2
- fix regression parsing <<"-0e...">> (thanks @c-bik)
v2.5.1
- assume all datetimes are UTC time and add
Zdesignator to indicate - fix parsing issue with datetimes in arrays
v2.5.0
consult/2function for reading a file directly to a json termmaps_alwaysbuild flag for always returning maps on platforms that support them- dialyzer fixes
v2.4.0
- enough performance improvements to justify a new version. 2-3x speedup depending on mode of operation
v2.3.1
- fixes an issue where astral plane json escape sequences were inadvertently being converted to the unicode replacement character
v2.3
- switched to a faster implementation of string parsing in both the decoder and encoder
- expand
uescapeoption to the decoder - allow control codes in json passed to decoder (contrary to the spec, yes)
v2.2
return_mapsoptionuescapeoption for 7-bit clean output- add
Makefilefor slightly bettererlang.mkcompatibility - add
maps_support/0call to determine whetherjsxwas compiled with support for maps or not
v2.1.1
- faster generation of json via iolists
repeat_keysoption
v2.1
- force the end of streams with
end_jsonin addition toend_stream - support for encoding erlang datetime tuples to iso8601 format
- allow a single trailing comma in objects and arrays
v2.0.4
- more typespec adjustments
v2.0.3
- update some typespecs to make them more comprehensive
v2.0.2
- fixes travis-ci spec
v2.0.1
- fix regression in output of empty objects/arrays
v2.0
- jsx is much more pragmatic by default; common json errors are silently ignored (and fixed). stricter parsing must be enabled with options
- add support for encoding otp 17.0's new maps data type
- removed
pre_encodeandpost_decodeoptions in favour of making jsx functions easier to wrap and customize - streaming behavior is now disabled by default and must be requested explicitly
- removed deprecated function names (
to_json,to_term,term_to_json, etc) - expanded test coverage
v1.4.5
- various fixes to typespecs uncovered by dialyzer
- allow integer keys during encoding
- convert atoms (other than
true,falseandnull) to strings during encoding
v1.4.4
- typespec for
json_term/0fixed - incorrect boolean shortcircuiting fixed in multibyte escape processing
v1.4.3
- add empty rebar.config for mix build tool
- add
attempt_atomoption for decoding json objects - fix a bug related to multibyte codepoints and streaming input
- add a missing error state in the encoder
v1.4.2
- build apparatus cleaned up and streamlined
- new
{raw, <<"json goes here">>}intermediate form to support direct generation of json - bugfixes involving inappropriate exceptions from jsx functions
v1.4.1
- fixes a bug with interaction between
dirty_stringsand even numbers of escape characters - performance enhancements
v1.4
- radically refactored decoder
dirty_stringsnow behaves intuitively in decoding. bad codepoints, bad utf8, illegal characters and escapes (except"and'ifsingle_quoted_stringsis enabled) are ignored completelyincomplete_handler&error_handlerare now available for use, see documentation in README
v1.3.3
pre_encodenow orders input in the order you'd expect
v1.3.2
pre_encodeis now able to handle tuples correctly
v1.3.1
pre_encodeis now able to handle tuples
v1.3
- introduces
prettify/1andminify/1, shortcuts forformat/2 - introduce
encode/1,2anddecode/1,2as primary interface to built in tokenizers.to_json/1,2andto_term/1,2remain accessible but not advertised - new
parser/3function exposes syntactic analysis stage for use with user defined tokenizers - improved documentation
v1.2.1
- fixes incorrect handling of escaped forward slashes, thanks bob ippolito
v1.2
- rewritten handling of string escaping to improve performance
pre_encodeandpost_decodehooks, see READMErelaxoption
v1.1.2
- add
dirty_stringsoption - more fixes for invalid unicode in strings
v1.1.1
- fixes bug regarding handling of invalid unicode in R14Bxx
v1.1
- improvements to string escaping and json generation performance
v1.0.2
- fixes to function specs
- rewritten README
commentsoption
v1.0.1
- rebar fix