JSON Schema - 根据输入属性指定字符串长度

时间:2016-09-02 23:23:34

标签: jsonschema

JSON Schema是否可以指定一个字符串长度,该长度取决于正在验证的项目中属性的值?

例如,我有一个带有" foo"的文档。物业有价值3.我想确保" bar" property是一个至少为3的字符串

示例JSON

{
"foo": 3,
"bar": "111"
}

JSON架构

{
   "properties" : {
      "foo": {
         "type": "integer",
         "minimum": 1
       }
      "bar": {
         "type": "string",
         "minLength": "{$foo}"
       }
   }
}

1 个答案:

答案 0 :(得分:2)

有一个v5 proposal for a $data keyword,它将允许模式使用数据中的值,使用JSON指针或相对JSON指针"

使用您的示例:

{
   "properties" : {
      "foo": {
         "type": "integer",
         "minimum": 1
       }
      "bar": {
         "type": "string",
         "minLength": { "$data": "1/foo" }
       }
   }
}

$data关键字的支持显然取决于您使用的验证程序。一些验证器确实支持v5提案。