介绍
JSON Schema是一个用于验证JSON数据的强大工具,可校验json格式和数据值
入门案例
安装Nuget
Install-package Newtonsoft.Json.Schema
代码:
{
string json = @"{
'name':'fan',
'age':'18',
'isGreat':true,
'pets':['ahuang','nainiu'],
'gender':'man',
'description':null
}";
string schemaJson = @"{
""type"":""object"",
""properties"":{
""name"":{
""type"":""string"",
""maxLength"":15
},
""age"":{
""type"":[""number"",""string""]
},
""isGreat"":{
""type"":""boolean""
},
""pets"":{
""type"":""array"",
""items"":{""type"":""string""}
},
""gender"":{
""type"":""string"",
""enum"":[
""man"",
""women""
]
},
""description"":{
""type"":""null""
}
},
""required"":[""name""]
}";
var person = JObject.Parse(json);
var schema = JSchema.Parse(schemaJson);
bool valid = person.IsValid(schema);//true
}
通用关键字
type
type关键字是json模式的基础, 指定架构的数据类型。
JSON Schema的核心定义了以下基本类型:
- string
- number
- object
- array
- boolean
- null
type关键字可以是一个字符串或数组,数组代表可以是多种类型中的一种
{“type”: “number”}
{“type”: [“number”, ‘string’]}
enum
enum关键字用于限制值, 它必须是一个必须包含一个元素的数组,其中每个元素都是唯一的。
$schema
该$schema关键字用于声明JSON片段实际上是JSON模式的一部分。它还声明了针对该模式编写的JSON Schema标准的哪个版本。
pattern
正则表达式
{
“type” : “string” ,
“pattern” : “^(\\([0-9] {3} \\))?[0-9]{3}-[0-9] {4} $ “
}
object关键字
代表一个对象
properties属性
使用properties关键字定义对象上的属性
required属性
required关键字接受一个或多个字符串的数组。每个字符串必须是唯一的。
minProperties、minProperties属性
限制属性数
array关键字
代表一个数组
items
数组元素显示
minItems、minItems
数组长度限制
uniqueItems
数组中的元素必须唯一
参考:
https://www.cnblogs.com/dreamyu/p/9317721.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。