【问题标题】:JSON Schema - specify string length based on input propertyJSON Schema - 根据输入属性指定字符串长度
【发布时间】:2016-09-02 23:23:34
【问题描述】:

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

例如,我有一个“foo”属性值为 3 的文档。我想确保“bar”属性是一个至少大小为 3 的字符串

JSON 示例

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

JSON 架构

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

【问题讨论】:

    标签: jsonschema


    【解决方案1】:

    有一个 v5 proposal for a $data keyword 将“允许架构使用数据中的值,使用 JSON 指针或相对 JSON 指针指定”。

    使用您的示例:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多