jsonschema是描述你的JSON数据格式;JSON模式(应用程序/模式+JSON)有多种用途,其中之一就是实例验证。验证过程可以是交互式或非交互式的。例如,应用程序可以使用JSON模式来构建用户界面使互动的内容生成除了用户输入检查或验证各种来源获取的数据。
二.基本数据类型三.关键字四.详细使用jsonschema是无限递归,为不同类型时有不同的描述关键字,顶级必须的type必须是object类型,且代表根目录
4.1object类型4.2array类型当type取值为array时,涉及的关键字:items、additionalItems、minItems、maxItems、uniqueItems、contains
4.3integer和number类型当type取值为integer或number时涉及的关键字:multipleOf、maximum、exclusiveMaximum、minimum、exclusiveMinimum
4.4string类型4.5其他全类型可用,即不局限于某个type,涉及的关键字:enum、const、allOf、anyOf、oneOf、not、default
enum该关键字的值是一个数组,该数组至少要有一个元素,且数组内的每一个元素都是唯一的。
如果待校验的JSON元素和数组中的某一个元素相同,则通过校验。否则,无法通过校验。
注意,该数组中的元素值可以是任何值,包括null。
const该关键字的值可以是任何值,包括null。
如果待校验的JSON元素的值和该关键字指定的值相同,则通过校验。否则,无法通过校验。
allOf该关键字的值是一个非空数组,数组里面的每个元素都必须是一个有效的JSONSchema。只有待校验JSON元素通过数组中所有的JSONSchema校验,才算真正通过校验。
anyOf该关键字的值是一个非空数组,数组里面的每个元素都必须是一个有效的JSONSchema。如果待校验JSON元素能够通过数组中的任何一个JSONSchema校验,就算通过校验。
oneOf该关键字的值是一个非空数组,数组里面的每个元素都必须是一个有效的JSONSchema。
如果待校验JSON元素能且只能通过数组中的某一个JSONSchema校验,才算真正通过校验。不能通过任何一个校验和能通过两个及以上的校验,都不算真正通过校验。
not该关键字的值是一个JSONSchema。
只有待校验JSON元素不能通过该关键字指定的JSONSchema校验的时候,待校验元素才算通过校验。
default该关键字的值是没有任何要求的。