【问题标题】:JSON Definition inside JSON Object inside Schema not Obeying Enums: Python jsonvalidationSchema 内的 JSON 对象内的 JSON 定义不服从枚举:Python jsonvalidation
【发布时间】:2014-11-06 17:55:08
【问题描述】:

我正在编写一个 vcxproj 生成器供我个人使用。这个项目的一部分是让我了解 JSON 模式。下面是我定义的模式。 (问题定义在架构之后)。

    self._schema = {
        'definitions': {

            ...

            'project_settings': {
                'required': ['configuration', 'platform'],

                'type': 'object',
                'properties': {
                    'platform': {
                        'enum': ['x86_64', 'Win32']
                    },
                    'connfiguration': {
                        'enum': ['Release', 'Debug']
                    },

                    ...    

                }
            }
        },

        # Start of actual requirements
        'type': 'object',
        'properties': {
            'project_configurations': {
                'type': 'array',
                'minItems': 1,
                'items': {
                    'allOf': [{'#ref': 'definitions/project_settings'}]
                }
            }
        },
        'additionalProperties': False,
        'required': ['project_configurations'],
    }

我的问题在于#definitions/project_settings/configuration#definitions/project_settings/platform。如果我提供以下 JSON 供 python 的 jsonschema.validate 验证,则当我认为枚举应该失败时,它被认为是有效的。

{
  "project_configurations": [
    {
      "configuration": "taoshwu",
      "platform": "esostat"
    }
  ]
}

【问题讨论】:

    标签: json validation python-2.7 jsonschema


    【解决方案1】:

    $ref 关键字不正确。

    试试:

    '$ref':'#/definitions/project_settings'
    

    【讨论】:

      猜你喜欢
      • 2022-12-17
      • 2020-10-07
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多