一、介绍
JSON Schema是基于JSON的格式的规范,用于定义JSON数据的结构。
官网:https://ajv.js.org/json-schema.html
在线验证:https://www.jsonschemavalidator.net/
在json-schema官网上可以看到,java版本的validator库推荐了以下几种方案:
Snow 2019-09, draft-07, -06 Uses Maven for the project and Gson under the hood. (GNU Affero General Public License v3.0)
everit-org/json-schema draft-07, -06, -04 (Apache License 2.0)
Justify draft-07, -06, -04 (Apache License 2.0)
networknt/json-schema-validator draft-07, -06, -04 Support OpenAPI 3.0 with Jackson parser (Apache License 2.0)
常用的json-schema-validator库有:everit-org/json-schema和networknt/json-schema-validator ,在everit-org/json-schema的github介绍中可知,如果项目代码中使用jackson进行的json解析,推荐使用后者进行校验;如果使用的是org.json API 进行json解析,推荐使用前者校验。
everit:GitHub - everit-org/json-schema: JSON Schema validator for java, based on the org.json API
networknt: https://github.com/networknt/json-schema-validator
fge:https://github.com/java-json-tools/json-schema-validator
注意:fge/json-schema-validator也称作 java-json-tools/json-schema-validator
参考:https://blog.youkuaiyun.com/liuxiao723846/article/details/108578544
二、性能对比
在networknt github上有一个三者的性能对比,最快的是networknt。
fge: 7130ms
everit-org: 1168ms
networknt: 223ms
三、json Schema示例
示例1