<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`
没有合适的资源?快使用搜索试试~ 我知道了~
价值8000的H5聊天系统即时通讯,风车IM聊天APP、聊天、交友、客服系统源码
共2040个文件
js:1080个
json:335个
vue:250个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 97 浏览量
2024-12-27
10:07:38
上传
评论
收藏 250.46MB ZIP 举报
温馨提示
H5聊天系统即时通讯,风车IM聊天APP、聊天、交友、客服、微信带安卓、苹果端APP即时通 新增自动化注册 1.下载即可自动注册账号 2.统一设备重复同一账号 3.升级更新英文方案 4.升级更新英文版App 招呼消息的长度限制调整,用于方便外语版本显示更多文字 6.后台防护升级 后台白名单绑定(除白名单IP其他设备无法访问) 保障更稳定的通讯服务; 加密消息和图片接口,防止消息被三方检测和过滤; 保护接口传输的内容,防止域名被劫持或地区屏蔽。 新增键登录 新增 设备UUID若干功能 新增 web端绑定功能 无需注册:点击即可分配账号登录 重复点击:点击一键注册仅初始账号进行登录 设备绑定:实现一设备一账号 设备展示:一机型-UUID 设备限制:设备注册限制账号可绑定设备数 区分客户:实现客户手动及一键注册来源 7.精准放权:允许客户登录web端 8.群员展示:可灵活控制群成员人数是否展示 9.视频界面:一键注册登录界面展示视频动态
资源推荐
资源详情
资源评论
收起资源包目录
价值8000的H5聊天系统即时通讯,风车IM聊天APP、聊天、交友、客服系统源码 (2040个子文件)
index.5ca1c9cc.css 80KB
animate.css 76KB
index.css 60KB
animate.min.css 57KB
view.css 55KB
view.css 49KB
uni.css 24KB
uni.css 24KB
uni.css 24KB
uni.css 24KB
uni.css 24KB
uni.css 24KB
swiper.min.css 19KB
markdown.css 15KB
style.css 10KB
circle.css 4KB
circle.css 4KB
circle.css 4KB
circle.css 4KB
circle.css 4KB
circle.css 4KB
wxParse.css 4KB
qunit.css 3KB
reset.css 2KB
flip.css 925B
_base.css 812B
bootstrapValidator.css 700B
bootstrapValidator.min.css 694B
wobble.css 660B
jello.css 656B
bounceIn.css 611B
flipInY.css 589B
flipInX.css 589B
bounce.css 581B
hinge.css 561B
bounceInRight.css 522B
bounceInDown.css 517B
bounceInLeft.css 517B
bounceInUp.css 513B
headShake.css 473B
zoomOutDown.css 461B
rubberBand.css 457B
zoomOutUp.css 455B
tada.css 449B
zoomInRight.css 425B
zoomInLeft.css 422B
zoomInDown.css 422B
zoomInUp.css 416B
flipOutY.css 386B
flipOutX.css 386B
swing.css 383B
lightSpeedIn.css 374B
heartBeat.css 359B
jackInTheBox.css 349B
rollIn.css 320B
rotateInDownRight.css 318B
rotateInDownLeft.css 314B
bounceOut.css 313B
rotateInUpRight.css 313B
zoomOutRight.css 310B
rotateInUpLeft.css 307B
zoomOutLeft.css 306B
pulse.css 303B
bounceOutDown.css 301B
bounceOutUp.css 296B
shake.css 295B
rotateOutDownRight.css 284B
rollOut.css 283B
rotateIn.css 281B
rotateOutDownLeft.css 278B
rotateOutUpRight.css 277B
rotateOutUpLeft.css 273B
lightSpeedOut.css 245B
rotateOut.css 245B
bounceOutRight.css 239B
bounceOutLeft.css 236B
fadeInRightBig.css 236B
fadeInLeftBig.css 234B
fadeInDownBig.css 234B
fadeInUpBig.css 227B
fadeInRight.css 225B
fadeInDown.css 223B
fadeInLeft.css 223B
slideOutRight.css 222B
slideOutLeft.css 220B
slideInRight.css 220B
slideOutDown.css 219B
slideInLeft.css 218B
slideInDown.css 218B
fadeInUp.css 216B
slideOutUp.css 214B
slideInUp.css 211B
zoomOut.css 207B
fadeOutRightBig.css 201B
fadeOutLeftBig.css 199B
fadeOutDownBig.css 198B
fadeOutUpBig.css 193B
fadeOutRight.css 190B
fadeOutLeft.css 188B
fadeOutDown.css 187B
共 2040 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21
资源评论
破碎的天堂鸟
- 粉丝: 9487
- 资源: 2723
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【创新无忧】基于遗传算法GA优化极限学习机ELM实现乳腺肿瘤诊断附matlab代码.rar
- 【创新无忧】基于遗传算法GA优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化广义神经网络GRNN实现电机故障诊断附matlab代码.rar
- 【创新无忧】基于遗传算法GA优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化广义神经网络GRNN实现光伏预测附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化广义神经网络GRNN实现数据回归预测附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化极限学习机ELM实现乳腺肿瘤诊断附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化相关向量机RVM实现数据多输入单输出回归预测附matlab代码.rar
- 【创新无忧】基于蚁狮优化算法ALO优化极限学习机KELM实现故障诊断附matlab代码.rar
- 【创新无忧】基于引力搜索优化算法GSA优化广义神经网络GRNN实现电机故障诊断附matlab代码.rar
- 【创新无忧】基于引力搜索优化算法GSA优化广义神经网络GRNN实现数据回归预测附matlab代码.rar
- 【创新无忧】基于引力搜索优化算法GSA优化广义神经网络GRNN实现光伏预测附matlab代码.rar
- 【创新无忧】基于引力搜索优化算法GSA优化相关向量机RVM实现北半球光伏数据预测附matlab代码.rar
- 【创新无忧】基于引力搜索优化算法GSA优化极限学习机ELM实现乳腺肿瘤诊断附matlab代码.rar
- 【创新无忧】基于引力搜索优化算法GSA优化极限学习机KELM实现故障诊断附matlab代码.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功