Releases: danielaparker/jsoncons
Release 0.178.0
Defect fixes:
-
Fixed issue with
jmespath::join function
through PR #546 -
Fixed issue with the path for cmake config files through PR #547
-
Related to #539, made the basic_json constructor
basic_json(const Allocator&)
consistent withbasic_json(json_object_arg_t, const Allocator& alloc = Allocator())
. -
Related to #539,
basic_json
copy construction now applies allocator traitsselect_on_container_copy_construction
to the allocator obtained fromother
. For pmr allocators, this gives a default constructed pmr allocator rather
than a copy of the allocator inother
.
Enhancements:
-
Improved the implementation of
basic_json
swap. Previously in some cases it would allocate. -
Improved the implementation of
basic_json
copy assignment. Reduced allocations when assigning from array to array and object to
object. -
Documented the rules for
basic_json
allocators here,
and added numerous tests for conformance to the rules. -
Added missing
basic_json
constructor
basic_json(json_array_arg_t,
std::size_t count, const basic_json& value, semantic_tag tag = semantic_tag::none,
const Allocator& alloc = Allocator());
Release 0.177.0
Release 0.176.0
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 allocatorFreeListAllocator
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;
}
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
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 returnswalk_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 functionwalk
for walking through the schema.
Release 0.174.0
Defect fixes:
- Fixed issue #499 with
nan_to_str
,inf_to_str
andneginf_to_str
Core library enhancements
- New
json_options
line_splits
option that addresses issue #490
jsonpath library enhancements
- New function
jsonpath::replace
analagous tojsonpointer::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 classesjson_validator
and
validation_output
remain for backward compatibility, but have been
deprecated.
-
Release 0.173.4
Release 0.173.3
Defect fixes:
- Made all member functions of jsoncons::range const
Release 0.173.2
- Removed use of deduced return types in jsonpath extension (C++ 14 feature)
Release 173.1
- Fixed issue #473 about
bigint
and-Werror=stringop-overflow
Release 0.173.0
Defect fixes:
-
Fixed issue #473 about
bigint
and-Werror=stringop-overflow
-
Fixed jmespath issue #471 about
jmespath::search
andojson
withAddressSanitizer
in macos environment -
Fixed jsonpointer issue with
json_pointer::parse
for empty string keys (which had implications
for jsonschemadefinitions
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 andmultipleOf
a floating point number -
Fixed jsonschema issue with the behavior of
$id
for rebasing in some keywords, particularlyif
,then
, andelse
.
Enhancements:
- The
jsonschema::make_schema
functions now support providing a retrieval URI, to initialize the base URI.