Releases: danielaparker/jsoncons
Release 0.154.1
Bugs fixed:
- Fixed issue with encode_cbor overload for user type input and output stream,
#259
Release 0.154.0
Bugs fixed:
- Fixed issue with escaping special characters in the
jsonpath::flatten
function #255 - Added workaround for clang xcode 10 bug in
std::optional
implementation - Fixed bug in
basic_json
less operator with left hand sideuint64_value
and right hand sideint64_value
Changes:
-
The function name
jsonpointer::insert_or_assign
has been deprecated and renamed tojsonpointer::add
.
Rationale: consistency with JSON Patch names. -
Until v0.154.0, the
position()
member function ofser_context
was defined for JSON
name and string events only, and indicated the position of the first character of the
name or string in the input. Since v0.154.0, theposition()
member function ofser_context
is defined for all JSON parse events, and indicates the position of the character at the beginning
of the event, e.g. '[' for an array, '{' for an object, and '"' for a string.
#256
Enhancements
Release 0.153.3
Bug fixes:
-
Fixed a bug in jsonpath array slice when the step component is negative
and the start and stop components are omitted, #252.
jsoncons jsonpath slices now have the same semantics as Python slices
including for negative steps. -
Fixed a bug in jsonpath line/column error reporting when using functions.
Release 0.153.2
Release 0.153.1
Bug fixes for BSON:
- Fixed int32 encoding error in the BSON encoder #243
- Fixed issue with default binary subtype when not specified, was 0, now 0x80 (user defined.)
Release 0.153.0
Bug fixes:
-
Fixed decode issue with
json_type_traits
defined forset
,unordered_set
,multiset
,
unordered_multiset
andforward_list
#242 -
Fixed issue with preserving original CBOR semantic tag for CBOR byte strings
associated with an unknown (to jsoncons) tag.
Enhancements:
-
basic_json::parse
,decode_json
,decode_csv
,decode_bson
,decode_cbor
,
decode_msgpack
, anddecode_ubjson
now support reading data from a pair of
LegacyInputIterators that specify a character or byte sequence. -
byte_string_view
now has an explicit constructor that allows any contiguous
byte sequence container.
Release 0.152.0
Bug fixes:
-
Fixed compile error when building with Android SDK level less than 21 #240
-
Fixed bson encode/decode of binary type (wasn't reading/writing subtype.)
Changes:
-
basic_json_compressed_encoder
has been deprecated and renamed to
basic_compact_json_encoder
. Rationale: consistency with other names.
The typedefsjson_compressed_stream_encoder
,wjson_compressed_stream_encoder
,
json_compressed_string_encoder
, andwjson_compressed_string_encoder
have
been deprecated and renamed tocompact_json_stream_encoder
,
compact_wjson_stream_encoder
,compact_json_string_encoder
, and
compact_wjson_string_encoder
. -
The factory function
make_array_iterator()
has been replaced bystaj_array()
. -
The factory function
make_object_iterator()
has been replaced bystaj_object()
. -
The constructors for
json_cursor
,csv_cursor
,bson_cursor
,cbor_cursor
,msgpack_cursor
, andubjson_cursor
that take a filter argument have been deprecated. Instead filters may be applied to a cursor using the pipe syntax, e.g.json_cursor cursor(is);
auto filtered_c = cursor | filter1 | filter2;
Enhancements:
-
Generalized
basic_json(byte_string_arg_t, ...
constructor to accomodate any contiguous byte sequence container,
which is a contiguous container that has member functionsdata()
andsize()
, and member typevalue_type
with size exactly 8 bits.
Any of the values typesint8_t
,uint8_t
,char
,unsigned char
andstd::byte
(since C++17) are allowed. -
Generalized the functions
decode_bson
,decode_cbor
,decode_msgpack
anddecode_ubjson
to read from any contiguous byte sequence. -
Generalized the
json_visitor
member functionbyte_string_value
to accept any contiguous byte sequence argument. In particular this means thatbyte_string_value
can be called on an encoder with any bytes sequence argument. -
Generalized the functions
encode_bson
,encode_cbor
,encode_msgpack
andencode_ubjson
to write to any back insertable byte container.
Any of the values typesint8_t
,uint8_t
,char
,unsigned char
andstd::byte
(since C++17) are allowed. -
Generalized the
json_type_traits
for maps to accomodate all key types
that themselves have json_type_traits defined #241 -
Unknown CBOR tags preceding a byte string (unknown to jsoncons),
MessagePack types associated with the MessagePack ext family,
and bson binary subtypes associated with a binary value are now captured. -
If in
basic_json
tag()
==semantic_tag::ext
, the functionext_tag()
will return a format
specific tag associated with a byte string value. -
The
basic_json
constructor with parameterbyte_string_arg_t
now allows constructing a byte string
associated with a format specific tag.
Release 0.151.1
Bug fixes:
- Fixed
jsoncons::semantic_tag::uri
,jsoncons::semantic_tag::base64
andjsoncons::semantic_tag::base64url
applied to text strings incorrectly encoded into CBOR \238
Release 0.151.0
Bug fixes:
-
Fixed eternal loop in csv parser #220
-
Fixed JSONPath issue with filter expressions containing regular expressions #233
-
Fixed OSS-Fuzz failed throw issue in CSV parser #232
-
Fixed OSS-Fuzz integer-overflow issue in CSV parser #231
-
Fixed OSS-Fuzz timeout issues #230
-
Fixed UBJSON issue parsing arrays with end markers #229
-
Fixed OSS-Fuzz memory allocation issues #228
-
Fixed OSS-Fuzz stack overflow issues #225
-
OSS-Fuzz failed throw issue in CBOR parser #235
-
Msg pack bin8 wrong format #237
Changes:
-
The cbor_option name
enable_typed_arrays
has been deprecated and
renamed touse_typed_arrays
. -
jsonpointer::unflatten_method
has been deprecated and replaced withjsonpointer::unflatten_options
. -
The cursor functions named
read
have been deprecated and renamed toread_to
.
Enhancements:
-
Added classes bson_options, msgpack_options, and ubjson_options
-
Until this release, only JSON parsing supported a
max_nesting_depth
option. Since this release,
JSON, BSON, CBOR, MessagePack and UBJSON all support amax_nesting_depth
option for both
parsing and serializing. The default is 1024. -
UBJSON supports a
max_items
option for parsing and serializing. The default is 16,777,216.
Release 0.150.0
Defects fixed:
-
Fixed jsonpath issue union with spaces
-
Fixed jsonpath issue Bracket notation with empty string
-
Fixed jsonpath issue Bracket notation with empty string doubled quoted
Changes:
-
The names
basic_json_content_handler
andbasic_default_json_content_handler
have been deprecated and renamed tobasic_json_visitor
andbasic_default_json_visitor
.
The private visitor functionsdo_xxx
have been renamed tovisit_xxx
.
This change should be transparent to most users. -
The name
staj_event_type::name
has been deprecated and renamed to
staj_event_type::key
. Rationale: consistency with other names. The old
name is still supported. -
The class
null_ser_context
has been deprecated. For defaults,ser_context()
is now used in place ofnull_ser_context()
.
Enhancements:
- Added jsonpointer
unflatten
function