首页 > 编程知识 正文

jsonfield和jsonproperty,json赋值

时间:2023-05-06 15:28:26 阅读:270123 作者:387

JSON Schema的关键字太少,有些默认的校验无法满足效果,需要自定义校验关键字,ajv-errors提供一些常见的validator关键字

用法 var Ajv = require('ajv');var ajv = new Ajv({$data:true});//添加所有的关键字require('ajv-keywords')(ajv);//只添加instanceof关键字require('ajv-keywords')(ajv, 'instanceof');//添加多个关键字require('ajv-keywords')(ajv, ['typeof', 'instanceof']);//只添加instanceof关键字,其他代码不添加(类似按需加载)require('ajv-keywords/keywords/instanceof')(ajv); 关键字

typeof

基于js的typeof实现

instaceof

基于js的instaceof实现

number range和exclusiveRange string

regexp

支持标准pattern不支持的标志

此关键字仅适用于字符串。如果数据不是字符串,则验证成功

formatmaximum、formatminimum、formatexclusivemaximum、formatexclusiveminimum

校验format:datetime、time、date类型 的范围

transform

Json schema是严格校验的,所以字符串中的空格也会影响校验结果

transform可以在校验前改变字符串

trim: remove whitespace from start and endtrimLeft: remove whitespace from starttrimRight: remove whitespace from endtoLowerCase: case string to all lower casetoUpperCase: case string to all upper casetoEnumCase: case string to match case in schema arrays

uniqueitemproperties

对象组成的数组每个值必须是不同的

objects

allRequired

对象中所有的都要满足

anyRequired

对象中只要有一个满足

oneRequired

对象中有且只有一个满足

prohibited

对象中不存在prohibited中指定的属性

deepPropperties

校验深层结构中某个属性具体的校验

deepRequired

校验数组(对象)深层结构中某个值是必须的 computer keywords

switch

可用if/then/else代替

select/selectcases/selectdefault

select查询某个值,匹配selectcases找那个值,并执行其中校验。匹配不到则校验selectdefault

All types

dynamicDefaults

设置默认值,并且可以扩展自定义函数。类似uuid等

参考 ajv-keywords readme

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。