jsonSchema 验证密钥

jsonSchema validating keys

你能帮我吗,我如何验证以下 json 中列表项的 "keys"(例如“1”、“2”、“3”):

   {
    "list" : {
        "1" : {
            "element1" : "1",
            "element2" : "2"
        },
        "2" : {
            "element1" : "1",
            "element2" : "2"
        },
        ....
        "512" : {
            "element1" : "1",
            "element2" : "2"
        }
    }
   }

也请给我一些常见的例子来验证 json 中的密钥。

JSON Schema 有三种方法来限制对象的 属性 名称。

属性

properties 关键字允许您为 属性 个名称设置完全匹配。

{
  "type": "object",
  "properties": {
    "1": { ... },
    "2": { ... },
    ...
  }
}

图案属性

patternProperties 关键字限制与正则表达式相匹配的任何 属性 名称以根据给定模式进行验证。

{
  "type": "object",
  "patternProperties": {
    "[1-9][0-9]*": { ... }
  }
}

属性姓名

propertyNames 关键字约束 属性 名称以匹配给定的架构。

{
  "type": "object",
  "propertyNames": {
    "pattern": "[1-9][0-9]*"
  }
}

编辑 12-19-2018 改进答案,添加缺失的 patternProperties,添加新的(自原始答案)选项 propertyNames.