<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)
- 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 `compile` or `getSchema` methods (there i
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于CSS和Vue的辅助医生哮喘病诊断的网站源码(课程设计).zip 基于CSS和Vue的辅助医生哮喘病诊断的网站源码(课程设计).zip 基于CSS和Vue的辅助医生哮喘病诊断的网站源码(课程设计).zip 基于CSS和Vue的辅助医生哮喘病诊断的网站源码(课程设计).zip 【资源说明】 该项目是个人毕设项目源码,评审分达到95分,调试运行正常,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 关于辅助医生进行哮喘病诊断的一个网站应用
资源推荐
资源详情
资源评论
收起资源包目录
基于CSS和Vue的辅助医生哮喘病诊断的网站源码(课程设计).zip (2000个子文件)
style.css 167KB
bootstrap.css 143KB
spinners.css 133KB
bootstrap.min.css 118KB
material-design-iconic-font.css 83KB
materialdesignicons.min.css 76KB
material-design-iconic-font.min.css 69KB
animate.css 55KB
linea.css 50KB
font-awesome.css 32KB
font-awesome.min.css 27KB
bootstrap-theme.css 26KB
bootstrap-theme.min.css 23KB
chartist.css 13KB
chartist.min.css 11KB
jquery.toast.css 5KB
default.css 3KB
qunit.css 3KB
chartist-init.css 2KB
main.css 1KB
sidebar-nav.css 1KB
spinners.css 990B
metisMenu.css 856B
chartist-plugin-tooltip.css 821B
chartist-plugin-tooltip.css 795B
sidebar-nav.min.css 781B
style.css 602B
morris.css 509B
example.css 158B
quarters.html 2KB
events.html 2KB
weeks.html 2KB
index.html 2KB
non-continuous.html 2KB
index.html 2KB
resize.html 2KB
timestamps.html 2KB
diagonal-xlabels-bar.html 2KB
diagonal-xlabels.html 2KB
no-grid.html 2KB
days.html 2KB
months-no-smooth.html 2KB
years.html 1KB
specs.html 1KB
updating.html 1KB
bar-colors.html 1KB
non-date.html 1KB
decimal-custom-hover.html 1KB
negative.html 1KB
donut-colors.html 1KB
area.html 1KB
donut-formatter.html 1KB
bar.html 1KB
dst.html 1KB
area-as-line.html 1KB
stacked_bars.html 1013B
goals.html 1008B
bar-no-axes.html 1003B
donut.html 999B
test.html 890B
runner.html 840B
_template.html 710B
test-es5-min.html 615B
test-es5.html 611B
error.html 276B
example.html 200B
lodash.js 528KB
ajv.bundle.js 265KB
jquery.js 242KB
chartist.js 162KB
psl.js 148KB
psl.min.js 124KB
ajv.min.js 119KB
core.js 112KB
jquery.min.js 82KB
lodash.min.js 72KB
bootstrap.js 68KB
morris.js 64KB
nacl-fast.js 61KB
sizzle.js 58KB
gmaps.js 57KB
uri.all.js 54KB
request.js 43KB
jquery.sparkline.min.js 42KB
semver.js 41KB
index.js 41KB
cookie.js 39KB
yargs.js 38KB
semver.js 38KB
bootstrap.min.js 36KB
chartist.min.js 36KB
morris.min.js 35KB
dashdash.js 34KB
tests.js 34KB
nacl.js 32KB
nacl-fast.min.js 32KB
sbcs-data-generated.js 31KB
gmaps.min.js 30KB
index.js 29KB
qunit.js 27KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
manylinux
- 粉丝: 4601
- 资源: 2490
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【岗位职责说明书】100000709 财务高级主管.doc
- 【岗位职责说明书】100000708 人力资源高级主管.doc
- 【岗位职责说明书】100000713 安全保卫高级主管.doc
- 【岗位职责说明书】100000803 综合行政主管.doc
- 【岗位职责说明书】100000802 财务部副经理(分公司).doc
- 【岗位职责说明书】100000800 室(职能部室)副经理.doc
- 【岗位职责说明书】100000807 工商法律事务主管.doc
- 【岗位职责说明书】100000808 档案管理主管.doc
- 【岗位职责说明书】100000809 信息管理主管.doc
- 【岗位职责说明书】100000818 会计主管.doc
- 【岗位职责说明书】100000814 绩效考核主管.doc
- 【岗位职责说明书】100000820 审计主管.doc
- 【岗位职责说明书】100000813 薪酬主管.doc
- 【岗位职责说明书】100000812 培训主管.doc
- 【岗位职责说明书】100000815 员工关系主管.doc
- 【岗位职责说明书】100000816 社会保险主管.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功