我有一个架构,其中特定的属性(child
)可以是string
,也可以是我已经定义的对象(ChildClass
)。但是,我很难在模式中定义它:
{
definitions": {
"ChildClass": { ... },
"ParentClass": {
"description": "The parent object",
"type": [ "object" ],
"properties": {
"child": {
"anyOf": [
{ "$ref": "#/definitions/ChildClass" },
"string"
]
}
}
}
}
}
我可以使用"string"
定义或我引用的定义,但不能同时使用(与anyOf
)。是什么合适的语法才能使架构理解其中任一有效?
答案 0 :(得分:2)
anyOf
关键字需要模式作为其项。 "string"
本身不是架构。尝试使用
{"type": "string"}
在anyOf
引用旁边的ChildClass
内。