代码之家  ›  专栏  ›  技术社区  ›  Hollerweger

Json模式验证:Json数组中的唯一键

  •  3
  • Hollerweger  · 技术社区  · 7 年前

    [
      {
      "unique1":{
        "value":3
        }
      },
      {
      "unique2":{
        "value":4
        }
      }
    ]
    

    每个数组项都有一个json对象,该对象具有一个顶级唯一键。 当我尝试为其编写验证模式时,我只能验证完整数组是唯一的,但不能验证每个数组中的顶级键。

    {
      "$schema": "http://json-schema.org/draft-06/schema#",
      "type": "array",
      "uniqueItems": true,
      "items": {
        "type": "object",
        "patternProperties": {
          "^.*$": {
          }
        }
      }
    }
    

    以下JSON数据应无法验证:

    [
      {
      "unique1":{
        "value":3
        }
      },
      {
      "unique1":{
        "value":4
        }
      }
    ]
    
    1 回复  |  直到 4 年前
        1
  •  2
  •   esp John Woo    7 年前

    没有标准的JSON模式关键字可以表达这种验证需求。

    Ajv (对于JavaScript)有一个自定义关键字“uniqueItemProperties”(在 ajv-keywords

    您可以在标准的下一个版本中提出。