Releases: danielaparker/jsoncons
Release 0.154.3
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::flattenfunction #255 - Added workaround for clang xcode 10 bug in
std::optionalimplementation - Fixed bug in
basic_jsonless operator with left hand sideuint64_valueand right hand sideint64_value
Changes:
-
The function name
jsonpointer::insert_or_assignhas been deprecated and renamed tojsonpointer::add.
Rationale: consistency with JSON Patch names. -
Until v0.154.0, the
position()member function ofser_contextwas 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_traitsdefined forset,unordered_set,multiset,
unordered_multisetandforward_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_ubjsonnow support reading data from a pair of
LegacyInputIterators that specify a character or byte sequence. -
byte_string_viewnow 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_encoderhas 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_encoderhave
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_typewith size exactly 8 bits.
Any of the values typesint8_t,uint8_t,char,unsigned charandstd::byte(since C++17) are allowed. -
Generalized the functions
decode_bson,decode_cbor,decode_msgpackanddecode_ubjson
to read from any contiguous byte sequence. -
Generalized the
json_visitormember 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_msgpackandencode_ubjson
to write to any back insertable byte container.
Any of the values typesint8_t,uint8_t,char,unsigned charandstd::byte(since C++17) are allowed. -
Generalized the
json_type_traitsfor 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_jsontag()==semantic_tag::ext, the functionext_tag()will return a format
specific tag associated with a byte string value. -
The
basic_jsonconstructor with parameterbyte_string_arg_tnow 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::base64andjsoncons::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_arrayshas been deprecated and
renamed touse_typed_arrays. -
jsonpointer::unflatten_methodhas been deprecated and replaced withjsonpointer::unflatten_options. -
The cursor functions named
readhave 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_depthoption. Since this release,
JSON, BSON, CBOR, MessagePack and UBJSON all support amax_nesting_depthoption for both
parsing and serializing. The default is 1024. -
UBJSON supports a
max_itemsoption for parsing and serializing. The default is 16,777,216.