<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
没有合适的资源?快使用搜索试试~ 我知道了~
医院信息管理系统源码带文字安装教程
共2000个文件
js:20792个
ts:3638个
json:2433个
5 下载量 46 浏览量
2023-03-09
09:27:34
上传
评论 2
收藏 63.28MB ZIP 举报
温馨提示
本项目是用springboot+layui+shiro写的医院管理系统,系统的业务比较复杂,数据库一共有36张表。 项目分为门诊管理、住院管理、系统管理、统计管理、数据中心、排班管理、仓库管理、药房管理。 门诊管理的功能:用户挂号、处方划价、项目划价、项目缴费、项目检查、药品缴费、门诊患者库。 住院管理的功能:入院登记、缴费管理、药品记账、项目记账、出院结算。 系统管理功能:菜单管理、角色管理、用户管理、图标管理、数据源监控管理,其中数据源admin/admin。 统计管理:门诊月度统计、住院月度统计、门诊年度统计、住院年度统计、医生统计、门诊当天统计。 数据中心:科室中心管理、医生列表管理、药品产地管理、项目大类管理、挂号类型管理。 仓库管理、经办人管理、供货商管理、药品分类管理、药品字典管理 排班:医生排班管理。 仓库管理:入库单管理、库存查询、出库单管理、操作记录管理等。 药房管理:药房详情管理、门诊取药管理、住院取药管理。
资源推荐
资源详情
资源评论
收起资源包目录
医院信息管理系统源码带文字安装教程 (2000个子文件)
bootstrap.min.css 118KB
layui.css 97KB
icon1.css 71KB
global.css 32KB
icon.css 25KB
public.css 16KB
layer.css 14KB
index.css 12KB
layui.mobile.css 10KB
laydate.css 7KB
dtree.css 6KB
dtreefont.css 4KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
qunit.css 3KB
c_store.css 1KB
c_beputinstorage.css 1KB
code.css 1KB
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
projectTypeManage.html 45KB
icon.html 35KB
report.html 23KB
admin.html 21KB
cashier.html 21KB
c_beputinstorage.html 17KB
Cxiangmu.html 17KB
leave.html 17KB
menuRight.html 16KB
Ctoll.html 15KB
drug.html 15KB
c_gooutstore.html 15KB
c_selectDrug.html 14KB
xaingmupay.html 13KB
jiancha.html 13KB
userManager.html 12KB
item.html 12KB
roleManager.html 11KB
paiban.html 11KB
drugdictionary.html 10KB
index.html 10KB
doctor.html 10KB
checkup.html 9KB
pharmacy.html 9KB
Cquyao.html 9KB
index.html 9KB
pay.html 8KB
main.html 8KB
registeredType.html 7KB
c_pharmacy.html 7KB
updateLogin.html 7KB
c_lackdrug.html 7KB
skull.html 7KB
chuanzhe.html 6KB
supply.html 6KB
departments.html 6KB
warehuose.html 6KB
area.html 6KB
unit.html 6KB
doctorDuibi.html 6KB
type.html 6KB
current.html 4KB
c_storedrugDate.html 4KB
zhuYuanManage.html 4KB
reportManage.html 4KB
c_recycle.html 3KB
c_record.html 3KB
login.html 3KB
menuLeft.html 2KB
zhuYuanBing.html 2KB
reportBing.html 2KB
c_store.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
index.html 1KB
test-es5-min.html 615B
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
大山源码
- 粉丝: 40
- 资源: 107
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功