Use push_back of nlohmann::json_pointer if available.
This commit is contained in:
parent
e8a9f66b1d
commit
746394922a
@ -34,8 +34,6 @@ is parsed into compiled C++ objects which are then used during validation. There
|
|||||||
still optimizations to be done, but validation speed has improved by factor 100
|
still optimizations to be done, but validation speed has improved by factor 100
|
||||||
or more.
|
or more.
|
||||||
|
|
||||||
In JSON-schema one sub-schema can be
|
|
||||||
|
|
||||||
# Design goals
|
# Design goals
|
||||||
|
|
||||||
The main goal of this validator is to produce *human-comprehensible* error
|
The main goal of this validator is to produce *human-comprehensible* error
|
||||||
@ -44,7 +42,7 @@ messages if a JSON-document/instance does not comply to its schema.
|
|||||||
By default this is done with exceptions thrown at the users with a helpful
|
By default this is done with exceptions thrown at the users with a helpful
|
||||||
message telling what's wrong with the document while validating.
|
message telling what's wrong with the document while validating.
|
||||||
|
|
||||||
With **2.0.0** the user can passed a `json_scheam::basic_error_handler` derived object
|
With **2.0.0** the user can pass a `json_scheam::basic_error_handler` derived object
|
||||||
along with the instance to validate to receive a each time a validation error occurs
|
along with the instance to validate to receive a each time a validation error occurs
|
||||||
and decice what to do (throwing, counting, collecting).
|
and decice what to do (throwing, counting, collecting).
|
||||||
|
|
||||||
|
|||||||
@ -92,7 +92,12 @@ public:
|
|||||||
json_uri append(const std::string &field) const
|
json_uri append(const std::string &field) const
|
||||||
{
|
{
|
||||||
json_uri u = *this;
|
json_uri u = *this;
|
||||||
|
#if NLOHMANN_JSON_VERSION_MAJOR >= 3 && NLOHMANN_JSON_VERSION_MINOR >= 5 && NLOHMANN_JSON_VERSION_PATCH >= 1
|
||||||
|
u.pointer_.push_back(field);
|
||||||
|
#else
|
||||||
u.pointer_ = nlohmann::json::json_pointer(u.pointer_.to_string() + '/' + escape(field));
|
u.pointer_ = nlohmann::json::json_pointer(u.pointer_.to_string() + '/' + escape(field));
|
||||||
|
#endif
|
||||||
|
|
||||||
return u;
|
return u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1023,7 +1023,7 @@ std::shared_ptr<schema> schema::make(json &schema,
|
|||||||
// append to all URIs the keys for this sub-schema
|
// append to all URIs the keys for this sub-schema
|
||||||
for (auto &key : keys)
|
for (auto &key : keys)
|
||||||
for (auto &uri : uris)
|
for (auto &uri : uris)
|
||||||
uri = uri.append(json_uri::escape(key));
|
uri = uri.append(key);
|
||||||
|
|
||||||
std::shared_ptr<::schema> sch;
|
std::shared_ptr<::schema> sch;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user