<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)
## 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)
- [Security contact](#security-contact)
- [Untrusted schemas](#untrusted-schemas)
- [Circular references in objects](#circular-references-in-javascript-objects)
- [Trusted schemas](#security-risks-of-trusted-schemas)
- [ReDoS attack](#redos-attack)
- 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, Support, 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 `compil
没有合适的资源?快使用搜索试试~ 我知道了~
疫情防控出入登记小程序.zip
共2000个文件
js:746个
ts:339个
json:278个
3星 · 超过75%的资源 需积分: 43 100 下载量 57 浏览量
2020-02-17
14:21:59
上传
评论 28
收藏 4.95MB ZIP 举报
温馨提示
苟利国家生死以,岂因祸福避趋之;为国家做一点贡献 可以通过扫描小程序生成的小程序二维码,方便信息登记,减少纸质登记,减少人员接触,方便疫情防控。 小程序使用了微信的云开发,无需单独部署后端服务器,节省使用成本降低开发难度
资源详情
资源评论
资源推荐
收起资源包目录
疫情防控出入登记小程序.zip (2000个子文件)
sshpk-conv.1 4KB
sshpk-sign.1 2KB
sshpk-verify.1 2KB
address 673B
AUTHORS 217B
AUTHORS 169B
.babelrc 202B
README.md.bak 7KB
range.bnf 619B
calendar 945B
card 2KB
sshpk-verify.cmd 265B
sshpk-sign.cmd 263B
sshpk-conv.cmd 263B
pbts.cmd 262B
pbjs.cmd 262B
semver.cmd 260B
uuid.cmd 256B
CODEOWNERS 11B
performance-now.coffee 1KB
scripts.coffee 1KB
performance-now.coffee 553B
delayed-require.coffee 362B
delayed-call.coffee 358B
initial-value.coffee 313B
difference.coffee 175B
jsl.node.conf 7KB
qunit.css 3KB
errors.def 8KB
definitions.def 4KB
coerce.def 2KB
defaults.def 1KB
missing.def 1KB
.DS_Store 10KB
.DS_Store 10KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.editorconfig 399B
.editorconfig 286B
.editorconfig 286B
.editorconfig 148B
.editorconfig 118B
.dir-locals.el 178B
.eslintignore 22B
.eslintignore 5B
.eslintignore 5B
.eslintrc 660B
.eslintrc 576B
.eslintrc 554B
.eslintrc 397B
.eslintrc 348B
.eslintrc 231B
.eslintrc 176B
.eslintrc 78B
geo 166B
dots.gif 244KB
.gitmodules 102B
.gitmodules 0B
test-es5-min.html 615B
test-es5.html 611B
example.html 200B
tslib.es6.html 36B
tslib.html 32B
hyper-schema 1KB
hyper-schema 1KB
hyper-schema 1KB
hyper-schema 942B
hyper-schema 936B
dashdash.bash_completion.in 14KB
info 289B
interfaces 845B
微信图片_20200209175657.jpg 86KB
微信图片_202002091756571.jpg 58KB
微信图片_202002091756574.jpg 56KB
微信图片_202002091756573.jpg 49KB
微信图片_202002091756572.jpg 39KB
vcode.jpg 3KB
vcode.jpg 3KB
bson.bundle.js 290KB
ajv.bundle.js 265KB
protobuf.js 260KB
index.js 231KB
icon.js 218KB
icon.js 218KB
icon.js 218KB
protobuf.js 217KB
bson.browser.umd.js 194KB
bson.esm.js 188KB
bson.browser.esm.js 188KB
psl.js 148KB
psl.min.js 124KB
ajv.min.js 119KB
protobuf.js 75KB
protobuf.min.js 70KB
nacl-fast.js 61KB
protobuf.min.js 61KB
uri.all.js 54KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
qty1981
- 粉丝: 19
- 资源: 143
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java【毕业设计】精品项目-基于ssm的校园二手商城.zip
- java【毕业设计】精品项目-基于ssm的商家进销存系统.zip
- java【毕业设计】精品项目-基于ssm的企业工资管理系统-.zip
- java【毕业设计】精品项目-基于ssm的图书分享平台.zip
- DBmotion 全量所需要容器集合包含 可执行的dokcer-compose.yaml
- java【毕业设计】精品项目-基于ssm的教务信息管理系统.zip
- Linux下Git的使用方法
- 大数据应用实例分析.doc
- java【毕业设计】精品项目-基于ssm的crm客户关系管理系统-.zip
- java【毕业设计】精品项目-基于ssm的公寓房屋出租系统-带.zip
- java【毕业设计】精品项目-基于SpringBoot+Shiro的通用权限管理系统.zip
- java【毕业设计】精品项目-基于ssm+shiro的垃圾分类管理系统(带论文).zip
- java【毕业设计】精品项目-基于SpringBoot+shiro教育课程管理系统.zip
- java【毕业设计】精品项目-基于SpringBoot+MyBatis的送水公司管理系统.zip
- java【毕业设计】精品项目-基于SpringBoot+LayUI的视频播放网站(权限采用SpringSecurity).zip
- arcgis中国工具.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论2