JsonSchema学习笔记

一. 概述

json schema是描述你的JSON数据格式;JSON模式(应用程序/模式+ JSON)有多种用途,其中之一就是实例验证。验证过程可以是交互式或非交互式的。例如,应用程序可以使用JSON模式来构建用户界面使互动的内容生成除了用户输入检查或验证各种来源获取的数据。

二.基本数据类型

类型名称

描述

object

表示一个对象

array

表示是一个数组

integer

表示整数类型

number

表示数值类型,既可以表示整数也可以表示浮点数

boolean

布尔类型

string

字符串

三.关键字

$schema

string

该关键字用于指定JSON Schema版本信息,可以省略

title

string

用于描述字段信息

description

string

用于描述字段信息

type

string

用于描述字段类型

properties

object

用于描述json元素的字段,递归

required

array

是否必须,用于描述字段是否必须

minProperties

integer

用于描述该层级的字段最小个数

maxProperties

integer

用于描述该层级的字段最大个数

patternProperties

object

properties一样,字段名可以是正则

additionalProperties

object

如果待校验JSON对象中存在,既没有在properties中被定义,又没有在patternProperties中被定义,那么这些一级key必须通过additionalProperties的校验

四. 详细使用

json schema是无限递归,为不同类型时有不同的描述关键字,顶级必须的type必须是object类型,且代表根目录

4.1 object类型



4.2 array类型

当type取值为array时,涉及的关键字:items、additionalItems、minItems、maxItems、uniqueItems、contains



4.3 integer和number类型

当type取值为integer或number时涉及的关键字:multipleOf、maximum、exclusiveMaximum、minimum、exclusiveMinimum



4.4 string类型



4.5 其他

全类型可用,即不局限于某个type,涉及的关键字:enum、const、allOf、anyOf、oneOf、not、default



enum

该关键字的值是一个数组,该数组至少要有一个元素,且数组内的每一个元素都是唯一的。

如果待校验的JSON元素和数组中的某一个元素相同,则通过校验。否则,无法通过校验。

注意,该数组中的元素值可以是任何值,包括null。

const

该关键字的值可以是任何值,包括null。

如果待校验的JSON元素的值和该关键字指定的值相同,则通过校验。否则,无法通过校验。

allOf

该关键字的值是一个非空数组,数组里面的每个元素都必须是一个有效的JSON Schema。只有待校验JSON元素通过数组中所有的JSON Schema校验,才算真正通过校验。

anyOf

该关键字的值是一个非空数组,数组里面的每个元素都必须是一个有效的JSON Schema。如果待校验JSON元素能够通过数组中的任何一个JSON Schema校验,就算通过校验。

oneOf

该关键字的值是一个非空数组,数组里面的每个元素都必须是一个有效的JSON Schema。

如果待校验JSON元素能且只能通过数组中的某一个JSON Schema校验,才算真正通过校验。不能通过任何一个校验和能通过两个及以上的校验,都不算真正通过校验。

not

该关键字的值是一个JSON Schema。

只有待校验JSON元素不能通过该关键字指定的JSON Schema校验的时候,待校验元素才算通过校验。

default

该关键字的值是没有任何要求的。

https://blog.csdn.net/qiumengchen12/article/details/77067613

参考资料:

http://json-schema.org/

https://blog.csdn.net/qiumengchen12/article/details/77067613

https://hellosean1025.github.io/json-schema-visual-editor/

展开阅读全文

页面更新:2024-04-13

标签:递归   层级   整数   数组   字段   元素   关键字   类型   模式   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top