Skip to content

Releases: danielaparker/jsoncons

Release 0.159.0

21 Nov 06:00
Compare
Choose a tag to compare

Bugs fixed:

  • Fixed clang 11 compile issues #284
    and #285.

Changes:

  • In the jsonpointer extension, the type names json_ptr and wjson_ptr have been deprecated and
    renamed to json_pointer and wjson_pointer.

Enhancements:

  • The json_pointer operators /= and / now support integers.

  • New override for jsonpath::json_replace that searches for all values that match a JSONPath expression
    and replaces them with the result of a given function, see #279

  • New factory function jmespath::make_expression to create compiled JMESPath expressions.

0.158.0

08 Oct 14:47
Compare
Choose a tag to compare

Bugs fixed:

  • Fixed compilation error with gcc 11, #276
    (thanks to Laurent Stacul)

Changes:

  • In 0.157.0, the _NAME_ convenience macros were augmented to allow an optional mode parameter
    (JSONCONS_RDWR or JSONCONS_RDONLY) and three optional function object parameters, match (value matches expected),
    from (convert from type known to jsoncons) and into (convert into type known to jsoncons).
    In this release - 0.158.0 - the order of the from and into function object parameters has been reversed.
    If you've provided from and into function objects as arguments in your json traits convenience macros, you'll
    need to reverse their order, or if you've provided just a from function argument, you'll need to precede it
    with jsoncons::identity() (or std::identity() if C++20). For the rationale for this change, see
    #277

  • Conversion errors during decode are now reported more consistently as jsoncons::convert_error,
    parsing errors remain jsoncons::ser_error (or std::error_code) as before.

Release 0.157.2

01 Oct 01:13
Compare
Choose a tag to compare

Warnings fixed:

  • Fixed C20 deprecated move_iterator access with arrow operator.
  • Fixed PVS-Studio warnings

OSS-Fuzz issues fixed:

  • Fixed OSS-Fuzz failed throw issue 25891 affecting decode_ubjson
    and potentially other decode functions. This means that decode
    functions will throw a ser_error instead of an assertion_error
    in the presence of certain kinds of bad data.

Release 0.157.1

26 Sep 23:59
Compare
Choose a tag to compare

Bugs fixed:

  • The macros JSONCONS_ALL_MEMBER_NAME_TRAITS and
    JSONCONS_N_MEMBER_NAME_TRAITS failed at compile time
    when provided with exactly two optional member arguments,
    JSONCONS_RDWR followed by a Match function object
    (other cases were fine.) This has been fixed.

Change reverted:

  • The name change ser_error to codec_error introduced in
    0.157.0 has been reverted back to ser_error. Just in case
    anybody used it, the name codec_error has been typedefed
    to ser_error.

Release 0.157.0

24 Sep 01:03
Compare
Choose a tag to compare

Changes:

  • The name ser_error has been deprecated and renamed to codec_error.

Enhancements:

  • The _NAME_ convenience macros now allow an optional mode parameter
    (JSONCONS_RDWR or JSONCONS_RDONLY) and three function objects,
    match (value matches expected), from (convert from type known to jsoncons)
    and into (convert into type known to jsoncons), #267

Release 0.156.1

17 Sep 19:49
Compare
Choose a tag to compare

Bugs fixed:

  • Fixed issue with jsonpath exception raised when querying empty string, #270

  • Included pull request #273 that fixes an
    issue with a misnamed macro (BOOST_HAS_FLOAT128 instead of JSONCONS_HAS_FLOAT128) introduced in 0.156.0.

Release 0.156.0

26 Aug 01:07
Compare
Choose a tag to compare

Bugs Fixed:

  • Fixed issue with JSONCONS_N_MEMBER_NAME_TRAITS macro, \263

Enhancements:

  • New basic_json(json_const_pointer_arg_t, const basic_json*) constructor to
    allow basic_json values to contain non-owning views of other basic_json
    values.

  • New deep_copy function to make a deep copy of a basic_json value that
    contains non-owning views on other basic_json values.

  • Reduced memory allocations in the jmespath extension using the new
    basic_json(json_const_pointer_arg_t, const basic_json*) constructor.

  • Support for encoding std::bitset into base16 encoded strings (JSON) and
    byte strings (binary formats), and decoding std::bitset from integer values,
    byte strings and base16 encoded strings.

  • Support 128 bit integer types __int128 and unsigned __int128, if supported
    on the platform.

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