JSON模式支持整数和数字作为数字类型。我有一个架构,将类型定义为“ double”,“ float”。 我在javascript中使用AJV来验证架构,但由于上述限制而失败。有什么方法可以专门验证double和float类型?
请注意- 我想验证两件事- 1. JSON模式 2.针对JSON模式的JSON
我被困在1
我尝试在AJV中添加自定义关键字,但它与默认类型不同
我的模式说
"lineSpacing": {
"type": "double",
"description": "Spacing between two lines"
},
AJV编译应允许double作为类型。如何实现呢?我缺少一些非常基本的东西吗?其他语言的任何其他解决方案也可以使用。
答案 0 :(得分:1)
首先,我不明白为什么要在架构中定义“ 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
答案 1 :(得分:0)
您可以对内置number
类型使用自定义格式,我认为这是用于JSON Schema的更理想的方式。某些验证器实现甚至为format
以外的类型支持string
关键字的用户定义值。