属性值被JSON模式验证程序忽略

时间:2017-02-01 12:33:46

标签: java json jsonschema

我正在使用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

0 个答案:

没有答案