ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.NET校验Json格式(JsonSchema)

2022-07-16 09:02:41  阅读:254  来源: 互联网

标签:string JSON number 关键字 Json JsonSchema 数组 NET type


介绍

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

标签:string,JSON,number,关键字,Json,JsonSchema,数组,NET,type
来源: https://www.cnblogs.com/fanfan-90/p/16483335.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有