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

时间:2019-06-25 07:15:12

标签: javascript json validation schema

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

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

我被困在1

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

我的模式说

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

AJV编译应允许double作为类型。如何实现呢?我缺少一些非常基本的东西吗?其他语言的任何其他解决方案也可以使用。

2 个答案:

答案 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关键字的用户定义值。