Skip to content

Releases: danielaparker/jsoncons

Release 0.154.1

12 Jul 15:56
Compare
Choose a tag to compare

Bugs fixed:

  • Fixed issue with encode_cbor overload for user type input and output stream,
    #259

Release 0.154.0

11 Jul 01:20
Compare
Choose a tag to compare

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 side uint64_value and right hand side int64_value

Changes:

  • The function name jsonpointer::insert_or_assign has been deprecated and renamed to jsonpointer::add.
    Rationale: consistency with JSON Patch names.

  • Until v0.154.0, the position() member function of ser_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, the position() member function of ser_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

  • Added jmespath extension for JMESPath support, #204
  • Added json_type_traits support for std::variant, #257

Release 0.153.3

18 Jun 19:29
Compare
Choose a tag to compare

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

13 Jun 20:04
Compare
Choose a tag to compare

Bug fixes:

  • Fixed a bug in the jsonpath array slice when the end argument is negative, #250

Platform:

  • Support for QNX Neutrino (thanks to Oleh Derevenko for #244
    and #245)

Release 0.153.1

04 Jun 12:38
Compare
Choose a tag to compare

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

01 Jun 14:10
Compare
Choose a tag to compare

Bug fixes:

  • Fixed decode issue with json_type_traits defined for set, unordered_set, multiset,
    unordered_multiset and forward_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, and decode_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

21 May 20:09
Compare
Choose a tag to compare

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 typedefs json_compressed_stream_encoder, wjson_compressed_stream_encoder,
    json_compressed_string_encoder, and wjson_compressed_string_encoder have
    been deprecated and renamed to compact_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 by staj_array().

  • The factory function make_object_iterator() has been replaced by staj_object().

  • The constructors for json_cursor, csv_cursor, bson_cursor, cbor_cursor, msgpack_cursor, and ubjson_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 functions data() and size(), and member type value_type with size exactly 8 bits.
    Any of the values types int8_t, uint8_t, char, unsigned char and std::byte (since C++17) are allowed.

  • Generalized the functions decode_bson, decode_cbor, decode_msgpack and decode_ubjson
    to read from any contiguous byte sequence.

  • Generalized the json_visitor member function byte_string_value
    to accept any contiguous byte sequence argument. In particular this means that byte_string_value
    can be called on an encoder with any bytes sequence argument.

  • Generalized the functions encode_bson, encode_cbor, encode_msgpack and encode_ubjson
    to write to any back insertable byte container.
    Any of the values types int8_t, uint8_t, char, unsigned char and std::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 function ext_tag() will return a format
    specific tag associated with a byte string value.

  • The basic_json constructor with parameter byte_string_arg_t now allows constructing a byte string
    associated with a format specific tag.

Release 0.151.1

14 May 15:07
Compare
Choose a tag to compare

Bug fixes:

  • Fixed jsoncons::semantic_tag::uri, jsoncons::semantic_tag::base64 and jsoncons::semantic_tag::base64url
    applied to text strings incorrectly encoded into CBOR \238

Release 0.151.0

11 May 19:13
Compare
Choose a tag to compare

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 to use_typed_arrays.

  • jsonpointer::unflatten_method has been deprecated and replaced with jsonpointer::unflatten_options.

  • The cursor functions named read have been deprecated and renamed to read_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 a max_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

03 Apr 23:27
Compare
Choose a tag to compare

Defects fixed:

Changes:

  • The names basic_json_content_handler and basic_default_json_content_handler
    have been deprecated and renamed to basic_json_visitor and basic_default_json_visitor.
    The private visitor functions do_xxx have been renamed to visit_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 of null_ser_context().

Enhancements:

  • Added jsonpointer unflatten function