首页 > 解决方案 > Java 中 JSON Schema 的验证

问题描述

我已经在 2019 年 9 月( https://json-schema.org/draft/2019-09/release-notes.html)编写了一个 JSON Schema 。如何使用 java 验证它?

我想编写方法(如果验证失败则抛出异常):

void validate(Path pathToSchema) throws Exception {
   // validation of schema by pathToSchema
}

PS 我想验证 JSON 模式的正确性,而不是 JSON 模式的 JSON 文档。

标签: javajsonjsonschema

解决方案


你用众所周知的networknt lib做这样的事情:

    JsonSchema schema = null;
    JsonSchemaFactory factory = JsonSchemaFactory.getInstance(VersionFlag.V201909);
    try {
      schema = factory.getSchema(
          "{\n"
              + "  \"$schema\": \"http://json-schema.org/draft/2019-09/schema\",\n"
              + "  \"$id\": \"#MyJsonClassSchema.json\",\n"
              + "  \"type\": \"object\",\n"
              + "  \"properties\": {\n"
              + "    \"myProperty\": {\n"
              + "      \"type\": \"string\"\n"
              + "    }\n"
              + "  }\n"
              + "}"
      );
    } catch (JsonSchemaException e) {
      System.out.println("json schema invalid: \n" + e);
    }
    return schema;

这将从您在输入中设置的架构版本开始验证 json-schema 的某些功能。


推荐阅读