Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 2个JSON模式问题,需要type关键字吗?核心和验证之间的区别是什么_Validation_Schema_Jsonschema - Fatal编程技术网

Validation 2个JSON模式问题,需要type关键字吗?核心和验证之间的区别是什么

Validation 2个JSON模式问题,需要type关键字吗?核心和验证之间的区别是什么,validation,schema,jsonschema,Validation,Schema,Jsonschema,好吧,我在互联网上走来走去,但我找不到一个确切回答以下问题的答案 “type关键字是必需的吗?”如果不是,那么有人可以,尽管这是神圣的,请以令人痛苦的细节,描述在没有提供时应该发生什么,验证方面 我发现了这个 但是我发现了很多其他的例子,在这些例子中可以定义一个模式对象,而没有这个关键字 例如,我通过测试示例发现了该回购协议 这里第5行有一个模式。它没有类型,但看起来像是在谈论对象。第21-25行描述了一个数组有效的测试 有人能帮我澄清一下吗 第二个也是,。。。核心和此处定义的验证之间的区别

好吧,我在互联网上走来走去,但我找不到一个确切回答以下问题的答案

“type关键字是必需的吗?”如果不是,那么有人可以,尽管这是神圣的,请以令人痛苦的细节,描述在没有提供时应该发生什么,验证方面

我发现了这个

但是我发现了很多其他的例子,在这些例子中可以定义一个模式对象,而没有这个关键字

例如,我通过测试示例发现了该回购协议

这里第5行有一个模式。它没有类型,但看起来像是在谈论对象。第21-25行描述了一个数组有效的测试

有人能帮我澄清一下吗

第二个也是,。。。核心和此处定义的验证之间的区别是什么

感谢您提供的高级

1。是否需要
类型
关键字? 不会。关键字将响应它们设计用于的类型的实例,否则它们将被忽略(以静默方式通过验证)。所以

{“最小值”:5}
只要不是小于5的数字,就可以通过任何测试。对象、字符串、数组等,全部通过。但一旦你介绍了一个数字,这个关键字就变得有兴趣了,它会做它自己的事情

每个关键字都有一个或一组它响应的类型<代码>类型是响应所有类型的类型之一

2.有什么不同的规格? 我们(规范作者)认为,如果我们将规范分成两部分,事情会变得简单一些:一部分用于架构构造关键字(例如,
$id
$schema
allOf
属性
,等等),另一部分用于值验证和注释(例如
最小值
最小长度
,等等)。但是,这确实意味着您必须查看多个文档才能创建验证程序

它还允许我们修改其中一个而不修改另一个,尽管我们从未这样做过


此拆分是在几次迭代之前完成的,我们只是将其保留下来,因为它似乎工作得很好。

请记住,JSON模式是一种基于约束的词汇表,而不是一种数据定义语言。它不像在数据库中定义表,而是在现有表上定义其他约束。此外,拆分允许如果不要求词汇和方言进行任何验证,则不要使用验证方面。