我正在编写一个vcxproj生成器供我个人使用。这个项目的一部分让我了解JSON模式。下面是我定义的Schema。 (模式后定义的问题)。
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' s jsonschema.validate
验证,那么当我认为枚举应该失败时,它被认为是有效的。
{
"project_configurations": [
{
"configuration": "taoshwu",
"platform": "esostat"
}
]
}
答案 0 :(得分:0)
$ ref关键字不正确。
尝试:
'$ref':'#/definitions/project_settings'