首页 > 解决方案 > 如何使用 JSON Schema 验证来自复选框数组的管道分隔字符串输入

问题描述

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

所以更清楚地说,如果我们有以下复选框:

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

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

"Option B|Option D"

这就是验证困难的原因。如果它是单个值,则可以通过使用enumJSON 模式提供的关键字轻松验证该值。例如,可以使用以下模式:

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

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

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

标签: jsonjsonschema

解决方案


推荐阅读