<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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java物流管理系统源码带小程序源码和安装视频 系统功能: 1.前台客户下单等操作(微信小程序) 2.后台物流基本信息维护等操作(PC exe管理系统or B/S管理系统) 3.快递员扫码枪收发件等操作(微信小程序) 接下来分别解释各个功能程序的大致业务 3.1前台客户下单 主要实现的业务是让客户在线下单(填写本寄件人的一系列信息和收件人的一系列信息以及附加的必要信息等), 运费时效查询(可输入寄件地区和收件地区以及货物的重量查出大致需要的运费,更加的方便用户),能够实时跟踪 快递情况(根据运单编号搜索查询,显示已经到达过的地区和目前所到达的地区),能够 查询以往所寄收快递的所有信息等操作以确保自己的物件能够及时送达,考虑到让用户更方便快捷的操作以及实 时的反馈所以前台选择使用微信小程序毕竟如今人人都上微信聊天和使用小程序功能 3.2后台物流基本信息维护 要实现前台用户操作的一系列功能,首先要在后台维护基本的信息,也就是说要在后台让物流的整个业务实现,才能 使前台的客户所下的单有意义, 让后台管理员创建以及维护基础功
资源推荐
资源详情
资源评论
收起资源包目录
Java物流管理系统源码带小程序源码和安装视频
(2000个子文件)
bootstrap.min.css 118KB
bootstrap.min.css 118KB
layui.css 59KB
layui.css 59KB
font-awesome.css 37KB
font-awesome.css 37KB
jquery-ui.css 36KB
jquery-ui.css 36KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.16.custom.css 33KB
jquery-ui-1.8.20.custom.css 33KB
jquery-ui-1.8.20.custom.css 33KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
layuiGlobalForIcon.css 23KB
layuiGlobalForIcon.css 23KB
global.css 19KB
global.css 19KB
jquery-ui-1.8.16.custom.css 19KB
jquery-ui-1.8.16.custom.css 19KB
jquery-ui.theme.css 18KB
jquery-ui.theme.css 18KB
layer.css 14KB
layer.css 14KB
ui.jqgrid.css 13KB
ui.jqgrid.css 13KB
public.css 12KB
public.css 12KB
index.css 10KB
index.css 10KB
layui.mobile.css 10KB
layui.mobile.css 10KB
demo.css 9KB
demo.css 9KB
awesome.css 8KB
awesome.css 8KB
laydate.css 7KB
laydate.css 7KB
metroStyle.css 6KB
metroStyle.css 6KB
zTreeStyle.css 6KB
zTreeStyle.css 6KB
base.css 5KB
base.css 5KB
iconfont.css 3KB
iconfont.css 3KB
qunit.css 3KB
qunit.css 3KB
demo.css 2KB
demo.css 2KB
ui.multiselect.css 2KB
ui.multiselect.css 2KB
code.css 1KB
code.css 1KB
prettify.css 676B
prettify.css 676B
searchFilter.css 393B
searchFilter.css 393B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
index.css 307B
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- ??????136329899792023-12-14实在是宝藏资源、宝藏分享者!感谢大佬~
- weixin_447445792022-10-17非常有用的资源,可以直接使用,对我很有用,果断支持!
- NOZuoNODie2022-10-07感谢大佬,让我及时解决了当下的问题,解燃眉之急,必须支持!
- shuijinger2023-08-10感谢资源主的分享,很值得参考学习,资源价值较高,支持!
精品各类源码
- 粉丝: 17
- 资源: 82
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功