Skip to content

Releases: danielaparker/jsoncons

Release 0.155.1

09 Aug 13:21
Compare
Choose a tag to compare

0.155.1

Enhancements:

  • Improved support for bson_parser to switch to array parsing
    when the BSON root object is a document but decode_bson needs
    to convert to an std::array, std::tuple or std::pair.

Release 0.155.0

03 Aug 04:08
Compare
Choose a tag to compare

Changes:

  • The semantic_tag enum value timestamp has been deprecated.
    It has been replaced by epoch_second, epoch_milli and epoch_nano.
    The deprecated timestamp value has been aliased to epoch_second.

Enhancements:

  • Allow bson_parser to switch to array parsing when the root
    object is a document but decode_bson expects an array.

  • Added json_type_traits support for std::nullptr_t

  • Added json_type_traits support for std::chrono::duration

  • Improved memory efficiency of jmespath extension

  • Added function json_encode_pretty as the preferred alternative
    to the json_encode overload with indenting::indent argument.

  • Added basic_json member function dump_pretty as the preferred alternative
    to the dump overload with indenting::indent argument.

  • Generalized the basic_json member function dump and the functions encode_json
    and encode_csv to write to any back insertable character container.

  • Generalized the basic_json function parse and the functions decode_json
    and decode_csv to read from any contiguous character sequence.

Release 0.154.3

19 Jul 00:50
Compare
Choose a tag to compare

v0.154.3

Bugs fixed:

  • Fixed g++ compile issue with -Wnoexcept compiler flag, \260

  • Fixed issue with creating a patch to remove array elements using json_patch::from_diff,
    #261

  • Fixed memory leak issue introduced in v0.154.2

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.