【问题标题】:Constraining the key in JSON schema约束 JSON 模式中的键
【发布时间】:2017-01-27 09:11:53
【问题描述】:

我想使用 JSON 模式将 key 约束放在 JSON 文档中。例如,我可能有一个如下所示的 JSON 文档:

{
    "id": 1,
    "name": "a green door",
    "price": 12.50,
    "tags": ["home", "green"]
}

我不关心正在使用哪些特定的键,但我想在架构中强制规定没有键长于一定数量的字符;为了争论,我们说 4 个字符。上面的示例将无法通过架构验证,因为“价格”的长度为 5 个字符。

我知道如何验证 value 的长度——这里,我关心的是 key

【问题讨论】:

    标签: json schema


    【解决方案1】:

    您可以使用patternProperties 将属性名称限制为与正则表达式匹配的名称。在您的示例中,它可能如下所示:

    { "$schema": "http://json-schema.org/draft-04/schema#",
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {   
        "^.{1,4}$": {}
      }
    }
    

    注意"additionalProperties": false 也是必需的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多