【问题标题】:JSON Schema Validation Failing ... "The property did not contain a required property"JSON Schema Validation Failing ...“该属性不包含必需的属性”
【发布时间】:2016-08-04 21:47:26
【问题描述】:

以下是我的 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”。那么我在这里缺少什么?

【问题讨论】:

    标签: ruby-on-rails json rspec jsonschema


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您写道您正在使用严格模式。在 json-schema github 页面上,我发现了以下内容:

      使用:strict 选项,所有属性都被认为具有 "required": true 和所有对象 "additionalProperties": false

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-05
        • 2012-07-28
        • 2015-09-01
        • 2018-10-22
        • 2023-04-01
        • 2016-02-06
        • 1970-01-01
        相关资源
        最近更新 更多