# json-schema
json-schema 是一个用于验证 JSON 数据结构的强大工具。
maven
<dependency>
<groupId>com.github.java-json-tools</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.2.14</version>
</dependency>
json schema
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"title": "Employee",
"description": "Add Employee",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"sex": {
"type": "string",
"enum": [
"0",
"1"
]
}
},
"required": [
"name",
"sex"
],
"minProperties": 5,
"maxProperties": 6
},
"minItems": 5,
"maxItems": 6
}
java
private final static JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
public static ProcessingReport validatorSchema(String mainSchema, String instance) throws IOException, ProcessingException {
JsonNode mainNode = JsonLoader.fromString(mainSchema);
JsonNode instanceNode = JsonLoader.fromString(instance);
JsonSchema schema = factory.getJsonSchema(mainNode);
ProcessingReport processingReport = schema.validate(instanceNode);
return processingReport;
}
ListProcessingReport processingMessages = (ListProcessingReport)validatorSchema(schema, data);
if (!processingMessages.isSuccess()){
res = ResultBean.error(1,processingMessages.asJson().get(0).get("message").asText());
} else {
res = ResultBean.success();
}
← log4j