.NET校验Json格式JsonSchema

介绍

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

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...