JSON 第一个数组元素的架构验证

JSON schema validation for first array element

我有兴趣验证一些 JSON 逻辑来检查数组中的第一个元素是否存在特定值。如果可能的话,我想通过 JSON 架构来实现这一点。例如,我想检查第一个元素是否是 "manager":

  "employees": [
    {
      "manager": "Band35",
      "name": "Tom"
    },
    {
      "developer": "Band25",
      "name": "Kelly"
    },
    {
      "analyst": "Band25",
      "name": "Jack"
    }    
  ]
}

将 JSON 反序列化为对象(取决于语言)并检查数组第一个元素上的 "manager" 属性 的值,如果您是更具体地说明您使用的语言或工具(下面的 JS 示例)

var validated = (JSON.parse(json).employees[0].manager === "Band35");

希望对您有所帮助!

您可以使用 items keyword 来验证数组。

If "items" is an array of schemas, validation succeeds if each element of the instance validates against the schema at the same position, if any.

这意味着如果您想检查数组中的第一项是否应该通过 firstSchema,您应该有 items: [firstSchema]

例如,如果您希望数组中的第一项是特定字符串...

{
  "items": [
    {
      "type": "string",
      "const": "myFirstItemString"
    }
  ]
}

要检查对象的特定 属性 名称,您需要使用 propertyNames keyword

您可以使用 https://jsonschema.dev

轻松测试