第一个数组元素的JSON模式验证

时间:2019-06-04 15:46:54

标签: jsonschema json-schema-validator

我有兴趣验证一些JSON逻辑以检查数组中第一个元素的某个值是否到位。如果可能,我想通过JSON模式实现。例如,我想检查第一个元素是否为“ manager”:

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

2 个答案:

答案 0 :(得分:2)

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

  

如果“ items”是模式数组,则每个元素的验证都将成功   实例的实例针对同一位置的架构进行验证,如果   任何。

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

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

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

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

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

轻松进行测试

答案 1 :(得分:0)

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

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

希望这会有所帮助!