AJV多级/嵌套JSON模式验证

时间:2019-01-15 22:47:22

标签: javascript validation jsonschema json-schema-validator ajv

使用架构

{
  "type": "object",
  "required": [     
      "person", 
      "animal"
  ],
  "person": {
      "title": "person",
      "type": "object",
      "required": [
          "name"
      ],
      "properties": {
         "name": {
            "type": "string"
         }
      }
  },
  "animal": {
    "title": "animal",
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        }
    }
  }
}

将此架构与此对象进行比较时有效

{
  "person": 0, 
  "animal": "dog"
}

我只希望它验证人员对象内的属性(因为它也具有必需的属性)。例如,只有以下内容有效:

{
  "person": {
     "name": "myName"
  },
  "animal": "dog"
}

如何确保使用AJV在架构中验证嵌套对象?

1 个答案:

答案 0 :(得分:1)

在架构中,您需要将animalperson放在properties对象中。

当前,由于这些属性键不在properties对象中,因此它们被归类为未知关键字并被忽略。

否则,是的,您的答案正确。