JSON模式引用子键

xcitsw88  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(101)

下面的JSON对象将负责呈现选择菜单。
使用JSON Schema,我是否可以 * 动态地 * 验证default键的值(在本例中为“sm”)与options对象中的至少一个属性匹配?
我已经看过文档,我希望这是可能的,使用patternrefsjson pointers的组合,但找不到这个用例的例子。

{
"top": {
            "label": "Small",
            "default": "sm",
            "options": {
                "none": {
                    "label": "None"
                },
                "sm": {
                    "label": "Small"
                },
                "md": {
                    "label": "Medium"
                },
                "lg": {
                    "label": "Large"
                },
                "xl": {
                    "label": "XL"
                }
            }
        }
}

字符串

rqenqsqc

rqenqsqc1#

在我看来,你的要求是不可能的。

  • pattern验证需要regex模式
  • 不幸的是,enum验证需要一个值数组

一种可能性--如果您真的真的需要这样做--是定义一个供应商扩展(但是您需要在模式验证器中实现它)。

lztngnrs

lztngnrs2#

default关键字是一个注解关键字,不用于任何类型的验证目的。JSON架构不支持架构内关键字的验证。

相关问题