Skip to content

Releases: danielaparker/jsoncons

Release 0.176.0

10 Jun 18:44
Compare
Choose a tag to compare

Compiler support

  • Update to Supported compilers
    documentation to reflect the compilers that are currently in continuous integration testing.

  • Support for some ancient compilers, in particular g++ 4.8 and 4.9, has been dropped.

  • Accepted pr #519 to support build with with llvm-toolset-7 on CentOS 7.

  • We (and users) have seen some compilation errors with tests of std::scoped_allocator_adaptor using our sample stateful allocator FreeListAllocator
    in versions of clang predating version 11, and versions of g++ predating version 10. We've therefore excluded these tests when testing with
    the older compilers.

Enhancements

  • basic_json now supports using C++ 17 structured binding, so you can write
for (const auto& [key, value] : j.object_range())
{
    std::cout << key << " => " << value << std::endl;
}
  • Addressed issue #509 of over allocating memory due to alignment constraints through pr #510

jsonschema extension defect fixes:

  • Fixed issue #520 where enabling format validation resulted in a premature abort to validation

  • Addressed issue #521 so that jsonschema now supports big integers

Other defect fixes:

  • Resolved #518 about CUDA and int128 and float 128

Release 0.175.0

02 May 19:21
Compare
Choose a tag to compare

This release contains two breaking changes to recently added
features.

Change to jsonpath::get function

  • The return value for jsonpath::get has been changed from a
    pointer to the selected JSON value, or null if not found, to a
    std::pair<Json*,bool>, where the bool component indicates
    whether the get operation succeeded.

Change to new jsonschema classes and functions introduced in 0.174.0:

  • The overload of json_schema<Json>::validate that takes a callback
    must now be passed a lambda that returns walk_result::advance or
    walk_result::abort. This supports early exit from validation.

Note that this change does not affect the legacy pre-0.174.0 jsonschema
classes and functions (make_schema, json_validator).

Enhancement to jsonschema library:

  • New json_schema member function walk for walking through the schema.

Release 0.174.0

22 Apr 14:59
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue #499 with nan_to_str, inf_to_str and neginf_to_str

Core library enhancements

  • New json_options line_splits option that addresses issue #490

jsonpath library enhancements

  • New function jsonpath::replace analagous to jsonpointer::replace,
    but for normalized paths.

jsonschema library enhancements

  • The jsonschema extension now supports Drafts 4, 6, 2019-09 and 2020-12
    in addition to Draft 07.

    • New function make_json_schema that returns a representation of
      a compiled JSON Schema document.

    • New class validation_message

    • The legacy function make_schema and classes json_validator and
      validation_output remain for backward compatibility, but have been
      deprecated.

Release 0.173.4

04 Feb 23:08
Compare
Choose a tag to compare

Defect fixes

  • Fixed issue #485 where basic_json member names did not use polymorphic_allocator

  • Addressed issue #482 by replacing static_assert with runtime exception

Release 0.173.3

31 Jan 23:02
Compare
Choose a tag to compare

Defect fixes:

Release 0.173.2

20 Dec 18:52
Compare
Choose a tag to compare
  • Removed use of deduced return types in jsonpath extension (C++ 14 feature)

Release 173.1

19 Dec 03:26
Compare
Choose a tag to compare
  • Fixed issue #473 about bigint and -Werror=stringop-overflow

Release 0.173.0

14 Dec 13:50
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue #473 about bigint and -Werror=stringop-overflow

  • Fixed jmespath issue #471 about jmespath::search and ojson with AddressSanitizer in macos environment

  • Fixed jsonpointer issue with json_pointer::parse for empty string keys (which had implications
    for jsonschema definitions keyword with empty keys.)

  • Fixed jsonschema issue with definitions keyword with empty keys

  • Fixed jsonschema issue #474 about JSON Schema maximum keyword error message

  • Fixed jsonschema issue with multipleOf keyword and type integer and multipleOf a floating point number

  • Fixed jsonschema issue with the behavior of $id for rebasing in some keywords, particularly if, then, and else.

Enhancements:

  • The jsonschema::make_schema functions now support providing a retrieval URI, to initialize the base URI.

Release 0.172.1

28 Nov 18:15
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue #470 concerning jsonpath::make_expression with ec broken

Release 0.172.0

26 Nov 18:52
Compare
Choose a tag to compare

Defect fixes:

  • Fixed issue #469 affecting JSMESPath expressions with terminating CR

Enhancements to jsonpath

  • Added result_option sort_descending.

  • Added new classes basic_json_location, basic_path_element, and basic_path_node.

  • Added a new function get for selecting a single JSON value from a JSON document at
    a location represented by a json_location.

  • Added a new function remove for removing a single JSON value from a JSON document at a
    location represented by a json_location.

  • Added member function select to jsonpath_expression.

  • Added member function select_paths to jsonpath_expression.

  • Added member function update to jsonpath_expression, to support
    update-in-place for compiled JSONPath expressions.

Enhancements to jsonpointer:

  • Added free functions to_string and to_wstring.

  • Added append function to basic_json_pointer.