我有一个远程模式“person.json”,保存在另一个文件中。从远程JSON模式重用属性,在原始模式的同一级别
{
"id":"#person",
"type":"object",
"properties": {
"name": {"type":"string"},
"gender": {
"type":"string",
"enum":["m", "f"]
},
"age": {"type":"number"}
},
"additionalProperties": false
}
而且我有一个 “man.json” 的模式,这是一个我原来的架构。
{
"id":"#man",
"type":"object",
"$ref":"person.json",
"properties": {
"beard":"boolean",
"moustache":"boolean"
},
"required": ["name"],
"additionalProperties": false
}
我想使用的属性:在同一水平的性质从person.json “姓名,性别,等等”:“胡须”,从man.json。
审定
{
name: 'John',
gender: 'm',
age: 29,
beard: false,
moustache: true
}
我要验证的先前示出的例子,当你看,与在相同的水平(未嵌套的)所有属性为例。
这可能吗?如果是,如何?非常感谢你。
若昂
这是一个耻辱,json不支持这样一个重要的功能。我不能丢弃“附加属性= false”。我使用了一些重复的代码。这不是一个好的解决方案,但它可以像我想要的那样工作。谢谢。 – joaorodr84
additionalProperties的解决方法可能是为人提供一种抽象基类;一个abstractPerson类,不禁止additionalProperties,可以包含allOf到人和人中。 – fiddur