2 JSON 模式问题,是否需要类型关键字以及核心和验证之间有什么区别
2 JSON Schema Questions, Is the type keyword required and what is the differencen between Core and Validation
好吧,我一直在上网,但找不到能明确回答以下问题的答案。
“是否需要类型关键字?”如果不是那么有人可以,尽管如此神圣,请以极其详细的方式描述当未提供时应该发生什么,验证方面。
我找到了这个...
http://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.1.1
但我发现了很多其他示例,其中可以定义模式对象但没有此关键字。
例如,我找到了这个带有测试示例的 repo。
他们在第 5 行有一个模式。它没有类型,但看起来他们在谈论一个对象。同样在第 21 - 25 行,他们描述了一个数组有效的测试。
谁能帮我解释一下。
同样对于第二个,...这里定义的核心和验证之间有什么区别...
https://json-schema.org/specification.html
先谢谢你
1。是否需要 type
关键字?
没有。关键字将响应它们设计的类型的实例,否则它们将被忽略(静默通过验证)。所以
{ "minimum": 5 }
会通过任何东西只要它不是小于5的数字。对象、字符串、数组等都通过。但是一旦你引入一个数字,这个关键字就会变得有趣并且它会做它的事情。
每个关键字都有它响应的一种类型或一组类型。 type
是对所有这些做出回应的人之一。
2。有哪些不同的规格?
我们(规范作者)认为,如果我们将规范分为两部分,事情会变得简单一些:一部分用于架构构造关键字(例如 $id
、$schema
、allOf
、properties
等),还有一个用于值验证和注释(例如 minimum
、minLength
等)。但是,确实 意味着您必须查看多个文档才能创建验证器。
它还允许我们在不修改其中一个的情况下修改另一个,尽管我们从未这样做过。
这个拆分是在几次迭代之前完成的,我们只是保留它,因为它看起来效果很好。
好吧,我一直在上网,但找不到能明确回答以下问题的答案。
“是否需要类型关键字?”如果不是那么有人可以,尽管如此神圣,请以极其详细的方式描述当未提供时应该发生什么,验证方面。
我找到了这个...
http://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.6.1.1
但我发现了很多其他示例,其中可以定义模式对象但没有此关键字。
例如,我找到了这个带有测试示例的 repo。
他们在第 5 行有一个模式。它没有类型,但看起来他们在谈论一个对象。同样在第 21 - 25 行,他们描述了一个数组有效的测试。
谁能帮我解释一下。
同样对于第二个,...这里定义的核心和验证之间有什么区别...
https://json-schema.org/specification.html
先谢谢你
1。是否需要 type
关键字?
没有。关键字将响应它们设计的类型的实例,否则它们将被忽略(静默通过验证)。所以
{ "minimum": 5 }
会通过任何东西只要它不是小于5的数字。对象、字符串、数组等都通过。但是一旦你引入一个数字,这个关键字就会变得有趣并且它会做它的事情。
每个关键字都有它响应的一种类型或一组类型。 type
是对所有这些做出回应的人之一。
2。有哪些不同的规格?
我们(规范作者)认为,如果我们将规范分为两部分,事情会变得简单一些:一部分用于架构构造关键字(例如 $id
、$schema
、allOf
、properties
等),还有一个用于值验证和注释(例如 minimum
、minLength
等)。但是,确实 意味着您必须查看多个文档才能创建验证器。
它还允许我们在不修改其中一个的情况下修改另一个,尽管我们从未这样做过。
这个拆分是在几次迭代之前完成的,我们只是保留它,因为它看起来效果很好。