我有一個遠程模式「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