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