我正在尝试使用json-schema记录现有的JSON用法。系统允许其中一个对象属性具有以下两种可能性。
无论
{
"tracking_number" : 123
}
或者
{
"tracking_number" : [ 123, 124, 125 ]
}
如何使用json架构表达这一点?
答案 0 :(得分:11)
使用anyOf
断言属性必须符合一个或另一个模式。
{
"type": "object",
"properties": {
"tracking_number": {
"anyOf": [
{ "$ref": "#/definitions/tracking_number" },
{ "type": "array", "items": { "$ref": "#/definitions/tracking_number" }
]
},
"definitions": {
"tracking_number": { "type": "integer" }
}
}