AJV学习
2016-07-02 01:01
405 查看
AJV是一个基于JSON-Schema的依赖包,他可以将我们定义的Schema格式作为参数生成一个对象,使用这个对象的构造函数可以用于检测数据的合法性,除此之外还能够自定义directive来产生我们需要的format。
AJV支持draft4和V5标准。其中,V5是Schema现在的一种改进标准,未加入到最新的Schema标准中,AJV使用了V5支持的概念和功能。
对于Keyword部分,官方文档中已经很清晰地罗列出来了(http://epoberezkin.github.io/ajv/),这里只对其中的一些比较难理解或者不那么直观的部分进行描述。1、
1、format
对于string,AJV为我们定义了一些常用的类型,注入email,ipv4的URL等等,设置这个之后就可以直接检测格式
但是,虽然AJV提供了max和min来限制format范围,可以除了年份可以直观量化外,注入EMAIL和URL应该怎么定义范围呢?
2、additionalItem
这个keyword故名思议,true就是允许数组中有超过定义的数量的元素,false就是不能。
keyword还有一个属性是可以为一个object, 这说明超过定义的数量之后的元素必须为这个object的格式。
3、switch
AJV给出了一个最简单的选择语句switch,虽然功能十分简单,但是这个小型的功能之于JSON,我感觉就像是SASS之于CSS一样,使得定义keyword和定义域变得可编程化,灵活了许多。
AJV支持draft4和V5标准。其中,V5是Schema现在的一种改进标准,未加入到最新的Schema标准中,AJV使用了V5支持的概念和功能。
对于Keyword部分,官方文档中已经很清晰地罗列出来了(http://epoberezkin.github.io/ajv/),这里只对其中的一些比较难理解或者不那么直观的部分进行描述。1、
1、format
对于string,AJV为我们定义了一些常用的类型,注入email,ipv4的URL等等,设置这个之后就可以直接检测格式
但是,虽然AJV提供了max和min来限制format范围,可以除了年份可以直观量化外,注入EMAIL和URL应该怎么定义范围呢?
2、additionalItem
这个keyword故名思议,true就是允许数组中有超过定义的数量的元素,false就是不能。
keyword还有一个属性是可以为一个object, 这说明超过定义的数量之后的元素必须为这个object的格式。
3、switch
AJV给出了一个最简单的选择语句switch,虽然功能十分简单,但是这个小型的功能之于JSON,我感觉就像是SASS之于CSS一样,使得定义keyword和定义域变得可编程化,灵活了许多。
相关文章推荐
- Python 语言及其应用 Chapter_4_Note_2 函数_参数_
- JSON-Schema学习心得
- qt之菜单项定制
- 数组集合简单操作
- 手机号编码解码
- poj1837 Balance (二维费用背包&&分组背包)
- ElasticSearch源码解析(一):转一篇介绍中文分词的文章
- python str的一些方法
- 安卓学习之—自定义ProgressBar的样式
- 进程通信--无名管道
- nginx负载均衡详细配置
- Java NIO原理及实例
- new与delete创建对象
- uva 455 Periodic Strings(暴力 判断周期串)
- Python中的join()函数的用法
- Lync(Skype)接口开发实录
- 利用信鸽推送提示评论通知
- 通用后台管理系统(ExtJS 4.2 + Spring MVC 3.2 + Hibernate)
- oracle间断性走错执行计划
- Intent 用法总结