我有一个 json 文档,其中的一部分可以是 null 或子对象,如下所示:
[{
"owner":null
},
{
"owner":{
"id":1
}
}]
问题是是否可以使用 ref 在 json 模式草案 v4 中对此进行建模?
我想要的是这样的
{
"type":"object",
"properties":{
"owner":{
"type":["null", "object"],
"$ref":"#/definitions/id"
}
},
"definitions":{
"id":{
"type":"object",
"properties":{
"id":{
"type":"number"
}
}
}
}
}
请您参考如下方法:
如果您删除 "type":"object"
,您发布的内容应该有效。从定义。
然而,一种更简洁、更明确的指定替代方案的方法是使用 oneOf
.您可以保留您的 "id"
定义不变,只需使用:
"owner":{
"oneOf": [
{"type": "null"},
{"$ref":"#/definitions/id"}
]
}