16 static std::optional<std::string> validate_json(
17 const nlohmann::json& input_json,
const nlohmann::json& schema_json)
19 valijson::Schema schema;
20 valijson::SchemaParser parser;
21 valijson::Validator validator;
23 valijson::adapters::NlohmannJsonAdapter schema_adapter(schema_json);
24 valijson::adapters::NlohmannJsonAdapter target_adapter(input_json);
26 parser.populateSchema(schema_adapter, schema);
28 valijson::ValidationResults results;
29 if (!validator.validate(schema, target_adapter, &results))
31 std::string validation_error_msg;
32 valijson::ValidationResults::Error error;
34 while (results.popError(error))
36 std::string error_ctx;
37 for (
auto const& c : error.context)
41 validation_error_msg += fmt::format(
42 "\nError #{}:\n context: {}\n message: {}",
48 return validation_error_msg;