<img align="right" alt="Ajv logo" width="160" src="http://epoberezkin.github.io/ajv/images/ajv_logo.png">
# Ajv: Another JSON Schema Validator
The fastest JSON Schema validator for Node.js and browser. Supports draft-04/06/07.
[![Build Status](https://travis-ci.org/epoberezkin/ajv.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv)
[![npm](https://img.shields.io/npm/v/ajv.svg)](https://www.npmjs.com/package/ajv)
[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)
[![Coverage Status](https://coveralls.io/repos/epoberezkin/ajv/badge.svg?branch=master&service=github)](https://coveralls.io/github/epoberezkin/ajv?branch=master)
[![Greenkeeper badge](https://badges.greenkeeper.io/epoberezkin/ajv.svg)](https://greenkeeper.io/)
[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv)
### _Ajv and [related repositories](#related-packages) will be transfered to [ajv-validator](https://github.com/ajv-validator) org_
## Using version 6
[JSON Schema draft-07](http://json-schema.org/latest/json-schema-validation.html) is published.
[Ajv version 6.0.0](https://github.com/epoberezkin/ajv/releases/tag/v6.0.0) that supports draft-07 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas, draft-06 schemas will be supported without changes).
__Please note__: To use Ajv with draft-06 schemas you need to explicitly add the meta-schema to the validator instance:
```javascript
ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-06.json'));
```
To use Ajv with draft-04 schemas in addition to explicitly adding meta-schema you also need to use option schemaId:
```javascript
var ajv = new Ajv({schemaId: 'id'});
// If you want to use both draft-04 and draft-06/07 schemas:
// var ajv = new Ajv({schemaId: 'auto'});
ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json'));
```
## Contents
- [Performance](#performance)
- [Features](#features)
- [Getting started](#getting-started)
- [Frequently Asked Questions](https://github.com/epoberezkin/ajv/blob/master/FAQ.md)
- [Using in browser](#using-in-browser)
- [Command line interface](#command-line-interface)
- Validation
- [Keywords](#validation-keywords)
- [Annotation keywords](#annotation-keywords)
- [Formats](#formats)
- [Combining schemas with $ref](#ref)
- [$data reference](#data-reference)
- NEW: [$merge and $patch keywords](#merge-and-patch-keywords)
- [Defining custom keywords](#defining-custom-keywords)
- [Asynchronous schema compilation](#asynchronous-schema-compilation)
- [Asynchronous validation](#asynchronous-validation)
- [Security considerations](#security-considerations)
- Modifying data during validation
- [Filtering data](#filtering-data)
- [Assigning defaults](#assigning-defaults)
- [Coercing data types](#coercing-data-types)
- API
- [Methods](#api)
- [Options](#options)
- [Validation errors](#validation-errors)
- [Plugins](#plugins)
- [Related packages](#related-packages)
- [Some packages using Ajv](#some-packages-using-ajv)
- [Tests, Contributing, History, License](#tests)
## Performance
Ajv generates code using [doT templates](https://github.com/olado/doT) to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.
Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks:
- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place
- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster
- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)
- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)
Performance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark):
[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance)
## Features
- Ajv implements full JSON Schema [draft-06/07](http://json-schema.org/) and draft-04 standards:
- all validation keywords (see [JSON Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md))
- full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available)
- support of circular references between schemas
- correct string lengths for strings with unicode pairs (can be turned off)
- [formats](#formats) defined by JSON Schema draft-07 standard and custom formats (can be turned off)
- [validates schemas against meta-schema](#api-validateschema)
- supports [browsers](#using-in-browser) and Node.js 0.10-8.x
- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation
- "All errors" validation mode with [option allErrors](#options)
- [error messages with parameters](#validation-errors) describing error reasons to allow creating custom error messages
- i18n error messages support with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package
- [filtering data](#filtering-data) from additional properties
- [assigning defaults](#assigning-defaults) to missing properties and items
- [coercing data](#coercing-data-types) to the types specified in `type` keywords
- [custom keywords](#defining-custom-keywords)
- draft-06/07 keywords `const`, `contains`, `propertyNames` and `if/then/else`
- draft-06 boolean schemas (`true`/`false` as a schema to always pass/fail).
- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package
- [$data reference](#data-reference) to use values from the validated data as values for the schema keywords
- [asynchronous validation](#asynchronous-validation) of custom formats and keywords
Currently Ajv is the only validator that passes all the tests from [JSON Schema Test Suite](https://github.com/json-schema/JSON-Schema-Test-Suite) (according to [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark), apart from the test that requires that `1.0` is not an integer that is impossible to satisfy in JavaScript).
## Install
```
npm install ajv
```
## <a name="usage"></a>Getting started
Try it in the Node.js REPL: https://tonicdev.com/npm/ajv
The fastest validation call:
```javascript
var Ajv = require('ajv');
var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true}
var validate = ajv.compile(schema);
var valid = validate(data);
if (!valid) console.log(validate.errors);
```
or with less code
```javascript
// ...
var valid = ajv.validate(schema, data);
if (!valid) console.log(ajv.errors);
// ...
```
or
```javascript
// ...
var valid = ajv.addSchema(schema, 'mySchema')
.validate('mySchema', data);
if (!valid) console.log(ajv.errorsText());
// ...
```
See [API](#api) and [Options](#options) for more details.
Ajv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or a custom function as a key), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again.
The best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call).
__Please note__: every time a validation function or `ajv.validate`
没有合适的资源?快使用搜索试试~ 我知道了~
微信小程序云开发博客系统源代码,让写博客像发朋友圈一样简单,含使用部署教程
共3329个文件
js:1343个
ts:430个
json:299个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
4星 · 超过85%的资源 4 下载量 76 浏览量
2022-12-15
10:53:06
上传
评论 2
收藏 7.1MB ZIP 举报
温馨提示
微信小程序云开发博客系统源代码,让写博客像发朋友圈一样简单 无需服务器无需域名,仅需注册一个小程序(免费)即可拥有自己的完整博客系统
资源推荐
资源详情
资源评论
收起资源包目录
微信小程序云开发博客系统源代码,让写博客像发朋友圈一样简单,含使用部署教程 (3329个子文件)
sshpk-conv.1 4KB
sshpk-conv.1 4KB
sshpk-sign.1 2KB
sshpk-sign.1 2KB
sshpk-verify.1 2KB
sshpk-verify.1 2KB
address 673B
address 673B
AUTHORS 217B
AUTHORS 217B
AUTHORS 169B
AUTHORS 169B
README.md.bak 7KB
README.md.bak 7KB
calendar 945B
calendar 945B
card 2KB
card 2KB
sshpk-verify.cmd 186B
sshpk-verify.cmd 186B
sshpk-conv.cmd 182B
sshpk-sign.cmd 182B
sshpk-conv.cmd 182B
sshpk-sign.cmd 182B
pbjs.cmd 180B
pbts.cmd 180B
pbjs.cmd 180B
pbts.cmd 180B
uuid.cmd 168B
uuid.cmd 168B
performance-now.coffee 1KB
performance-now.coffee 1KB
scripts.coffee 1KB
scripts.coffee 1KB
performance-now.coffee 553B
performance-now.coffee 553B
delayed-require.coffee 362B
delayed-require.coffee 362B
delayed-call.coffee 358B
delayed-call.coffee 358B
initial-value.coffee 313B
initial-value.coffee 313B
difference.coffee 175B
difference.coffee 175B
jsl.node.conf 7KB
jsl.node.conf 7KB
base.css 5KB
base.css 5KB
base.css 5KB
nord.css 3KB
nord.css 3KB
qunit.css 3KB
qunit.css 3KB
purebasic.css 2KB
purebasic.css 2KB
grayscale.css 2KB
grayscale.css 2KB
atom-one-dark-reasonable.css 2KB
atom-one-dark-reasonable.css 2KB
a11y-light.css 1KB
a11y-light.css 1KB
a11y-dark.css 1KB
a11y-dark.css 1KB
gruvbox-light.css 1KB
gruvbox-light.css 1KB
gruvbox-dark.css 1KB
gruvbox-dark.css 1KB
vs2015.css 1KB
vs2015.css 1KB
shades-of-purple.css 1KB
shades-of-purple.css 1KB
isbl-editor-dark.css 1KB
isbl-editor-dark.css 1KB
isbl-editor-light.css 1KB
isbl-editor-light.css 1KB
hybrid.css 1KB
hybrid.css 1KB
atelier-savanna-light.css 1KB
atelier-estuary-light.css 1KB
atelier-plateau-light.css 1KB
atelier-savanna-light.css 1KB
atelier-estuary-light.css 1KB
atelier-plateau-light.css 1KB
atelier-plateau-dark.css 1KB
atelier-savanna-dark.css 1KB
atelier-estuary-dark.css 1KB
atelier-plateau-dark.css 1KB
atelier-savanna-dark.css 1KB
atelier-estuary-dark.css 1KB
atelier-cave-light.css 1KB
atelier-cave-light.css 1KB
agate.css 1KB
agate.css 1KB
atelier-cave-dark.css 1KB
atelier-cave-dark.css 1KB
atom-one-light.css 1KB
atom-one-light.css 1KB
atom-one-dark.css 1KB
atom-one-dark.css 1KB
routeros.css 1KB
共 3329 条
- 1
- 2
- 3
- 4
- 5
- 6
- 34
资源评论
- 这个有点Bug2022-12-30钓鱼博主,大家快跑别上当,亲测!!!!!!! #上传者态度恶劣 # 引导二次消费 #标题与内容不符 #毫无价值 #运行出错
- wrh2775252402023-01-20资源内容总结的很到位,内容详实,很受用,学到了~
- qq_434783292023-03-16非常有用的资源,有一定的参考价值,受益匪浅,值得下载。
- biyezuopinvip2023-02-10资源很好用,有较大的参考价值,资源不错,支持一下。
Python代码大全
- 粉丝: 2730
- 资源: 688
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现用有限元法计算电磁场的Matlab工具 .rar
- 基于matlab实现有限元算法 计算电磁场问题 边界条件包括第一类边界和第二类边界.rar
- 基于matlab实现用于计算不同车重下的电动汽车动力性和经济性.rar
- 基于matlab实现遗传算法求解多车场车辆路径问题 有多组算例可以用.rar
- 浏览器.apk
- 基于matlab实现是一个matlab中的power system 中搭建的一个模型
- 基于JSP毕业设计-教学管理系统(源代码+论文).zip
- 基于JSP毕业设计-家政管理系统-毕业设计.zip
- 基于Python实现淘宝商品评论采集(含逆向)源代码
- 基于matlab实现多目标进化算法NSGAⅡ&Matlab讲解.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功