diff --git a/src/json-validator.cpp b/src/json-validator.cpp index 2c1ed55..134545b 100644 --- a/src/json-validator.cpp +++ b/src/json-validator.cpp @@ -1386,11 +1386,18 @@ std::shared_ptr schema::make(json &schema, schema.erase(attr); } - attr = schema.find("definitions"); - if (attr != schema.end()) { - for (auto &def : attr.value().items()) - schema::make(def.value(), root, {"definitions", def.key()}, uris); - schema.erase(attr); + auto findDefinitions = [&](const std::string &defs) -> bool { + attr = schema.find(defs); + if (attr != schema.end()) { + for (auto &def : attr.value().items()) + schema::make(def.value(), root, {defs, def.key()}, uris); + schema.erase(attr); + return true; + } + return false; + }; + if (!findDefinitions("$defs")) { + findDefinitions("definitions"); } attr = schema.find("$ref");