我正在使用fge json schema validator 2.2.x版本。当我运行验证JSON对象的基本示例时,我收到以下警告,并且密钥被忽略。
示例架构:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"str": {
"type": "string"
}
},
"required": [
"str"
]
}
示例数据:
{
"str1": "str"
}
Java代码:
JsonNode fstabSchema = JsonLoader.fromFile(new File("input/sample.json"));
JsonNode good = JsonLoader.fromFile(new File("input/sample-schema.json"));
JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
JsonSchema schema = factory.getJsonSchema(fstabSchema);
ProcessingReport report = schema.validate(good, true);
System.out.println(report);
理想情况下,上面的示例应该打印失败,因为根据架构需要str,但它打印成功时出现以下警告。
com.github.fge.jsonschema.core.report.ListProcessingReport: success
--- BEGIN MESSAGES ---
warning: the following keywords are unknown and will be ignored: [str]
level: "warning"
schema: {"loadingURI":"#","pointer":""}
domain: "syntax"
ignored: ["str"]
--- END MESSAGES ---
尝试了很多关于警告的搜索,但没有找到任何解决方案/修复。请纠正我,我做错了什么?
注意:上面的示例适用于online。