JSON模式验证失败..."该属性未包含必需属性"

时间:2016-08-04 21:47:26

标签: ruby-on-rails json rspec jsonschema

以下是我的json架构的部分版本。我目前正在使用json-schema Gem来验证以下(部分)架构:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "properties": {
    "botSettings": {
      "type": "object",
      "properties": {
        "welcomeMessage": {
          "type": "object",
          "required": ["body"],
          "properties": {
            "title": { "type": "string" },
            "body": { "type": "string" },
            "image": { "#ref": "#/definitions/image" }
          }
        },
        "invalidCommandMessage": { "type": "string" }
      }
    }
  }
}

针对以下(部分)json:

{
  "botSettings": {
    "welcomeMessage": {
      "title": "Welcome to the bot",
      "body": "This is the body right here"
    }
  }
}

在严格模式下验证时,它会声明"属性'#/ botSettings / welcomeMessage'不包含' image'"的必需属性,但我只需要设置为" body"。那我在这里错过了什么?

1 个答案:

答案 0 :(得分:1)

你没有遗漏任何东西。标准JSON Schema验证器应该认为您的JSON有效。验证失败可能是验证器中的错误,验证器中的某些非标准行为(检查配置),或者它没有根据您认为的架构进行验证(缓存问题)。