(⼆)jsonschema语法类型(type)进⼀步规范要求备注
string minLength
maxLength
pattern正则表达式
format
对字符串的格式做规范,例如电⼦邮件、⽇
期、域名等。eg: "format" : "date",
object properties对象有哪些属性
required必须属性有哪些 格式是⼀个数组dependencies
属性依赖关系
"name": ["card_id"]
就是说如果有name,就⼀定要
有 card_id
additionaProperties是否允许额外的成员 true/false minProperties最少有⼏个属性成员maxProperties最多有⼏个属性成员
number
(数字就⾏,不区分是整数还是⼩数)multipleOf
可以要求数值必须某个特定值的整数倍
"multipleOf" : 10,
// 要求数值必须是10的整数倍。minimum最⼩值
maximum最⼤值
exclusiveMinimum开区间最⼩值
exclusiveMaximum开区间最⼤值
integer要求数据必须是整数
array items
数组成员属性
1. "items"对应⼀个嵌套的Json
Schema,这个Json Schema定义了每
个元素应该满⾜的规范
2. 关键字items还可以对应⼀个数组,这
时Json数组内的元素必须与Json
Schema内items数组内的每个Schema
按位置⼀⼀匹配
JSON Schema关键词
$schema:该关键字声明该模式是根据标准的特定草案编写的,主要⽤于版本控制,可省略。
$id:该关键字定义模式的URI,⼀般指向⼀个⾃主域名。⽅便后续引⽤,可省略。
title 和 description:该JSON Schema的注释和描述信息,不会向验证的数据调节约束。
json值的类型有哪些type:该关键字会定义JSON数据的第⼀个约束,⽐如是JSON对象还是数组。
properties:需要约束的属性,值的类型是type的值
类型关键字
uniqueItems 数组元素是否必须唯⼀( true / false) true: 不可重复
false:可以重复
minItems数组最⼩长度
maxItems数组最⼤长度
additionalItems是否允许额外的成员 true/false boolean
null
举栗⼦:
example 1:
const data = {
"name": "Froid",
"age" : 26,
"address" : {
"city" : "New York",
"country" : "USA"
}
}
const schema = {
type: "object",
properties: {
"name": {
type: "string"
},
"age": {
type: "integer"
},
"address": {
type: "object",
properties: {
"city": {
type: "string"
},
"country": {
type: "string"
}
}
}
}
}
example 2:
const data = [
{
"id": 2,
"name": "An ice sculpture", "price": 12.50,
},
{
"id": 3,
"name": "A blue mouse", "price": 25.50,
}
]
const schema = {
type: "array",
items: {
type: "object",
properties: {
"id": {
type: 'integer'
},
"name": {
type: "string"
},
"price": {
type: "number"
}
},
required: [
"id",
"name",
"price"
]
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论