java - 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 文档。
解决方案
你用众所周知的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 的某些功能。
推荐阅读
- azure-api-management - 使用 Azure APIM 进行相互证书身份验证
- node.js - 不能将 React.lazy 与 Material UI 图标一起使用
- groovy - Soap UI:Groovy 测试步骤:如何从另一个 Groovy 脚本调用 groovy 脚本中的特定方法
- java - 在 jsp 中使用 c:foreach 时如何修复错误 NumberFormatException
- java - Android:Gradle 编译错误期望元素值是一个常量表达式 - 功能模块
- jenkins - Jenkinsfile java.lang.NullPointerException:无法调用方法
在空对象上 - scikit-learn - 保存一个 scikit-learn Bunch 对象
- redis - 如何增加redis中值的大小?
- reactjs - ReactJS:在开发环境中重新加载内部组件时出现 404 错误
- java - 获取整数列表并使用数组反向显示它们