Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
Javascript 如何在JSON模式中验证自定义类型?_Javascript_Json_Validation_Schema - Fatal编程技术网

Javascript 如何在JSON模式中验证自定义类型?

Javascript 如何在JSON模式中验证自定义类型?,javascript,json,validation,schema,Javascript,Json,Validation,Schema,JSON模式支持整数和数字作为数字类型。我有一个模式,它将类型定义为“double”“float”。 我在javascript中使用AJV来验证模式,但由于上述限制,它失败了。有什么方法可以专门验证double和float类型吗 请注意— 我想验证两件事- 1.JSON模式 2.针对JSON模式的JSON 我被困在1号 我曾尝试在AJV中添加自定义关键字,但它与默认类型不同 我的模式是 "lineSpacing": { "type": "double",

JSON模式支持整数和数字作为数字类型。我有一个模式,它将类型定义为“double”“float”。 我在javascript中使用AJV来验证模式,但由于上述限制,它失败了。有什么方法可以专门验证double和float类型吗

请注意— 我想验证两件事- 1.JSON模式 2.针对JSON模式的JSON

我被困在1号

我曾尝试在AJV中添加自定义关键字,但它与默认类型不同

我的模式是

"lineSpacing": {
          "type": "double",
          "description": "Spacing between two lines"
        },

AJV编译应该允许double作为一个类型。如何做到这一点?我是否遗漏了一些非常基本的东西?任何其他解决方案,其他语言也可以。首先,我不明白为什么要在模式中定义“double”,因为类型“double”表示要分配任何十进制值,如(10.02),但JSON模式有类型“number”,您可以在其中定义任何十进制值、正值或负值。下表-

1.20     // correct
-1      // correct
200    // correct 
"42"  // wrong, because type is string, if it's inside double quotes

您可以为内置的
number
类型使用自定义格式,我认为这是JSON模式更理想的方式。一些验证器实现支持用户定义的
格式
关键字值,即使是
字符串
以外的类型

为什么您如此关心
类型?根据AJV文档,《代码》{“类型”:“数字”}中包含了双倍字符,因此您可以使用
数字
类型。我知道这一点。我最近加入了一个新团队,他们在那里实现了这种模式,这是我无法理解的。除了
double
,还定义了
float
Map
类型。所以混乱。