如何使用JSON模式验证来自复选框数组的管道分隔字符串输入

时间:2019-02-21 15:45:01

标签: json jsonschema

我有一些数据是用户选择2个复选框并提交表单后得到的。用户可以选择10个不同的选项,然后将他们确实选择的两个选项连接成一个字符串,并使用|字符分隔,然后将其推送到一个JSON模式文件中,该文件用于验证输入。

更明确地说,如果我们具有以下复选框:

[] Option A
[x] Option B
[] Option C
[x] Option D
... etc

我们可以看到,选项B和选项D被选中。因此,将推送通过验证的字符串为:

"Option B|Option D"

这就是为什么验证困难的原因。如果是单个值,则可以通过使用JSON模式提供的enum关键字轻松地验证该值。例如,可以使用以下架构:

"answer": {
          "enum": [
            "Option A",
            "Option B",
            "Option C",
            "Option D"
          ]
        }

但是,由于传入值将不是这些值中的任何一个,并且实际上将是两个值与分隔符的串联,因此该方法将不起作用,因为该值将永远不会通过验证。

有什么方法可以调整此架构或使用JSON架构的其他功能,以便字符串"Option B|Option D"和任何其他组合通过验证?

0 个答案:

没有答案