如何在json模式中表示和/并类型

如何在json模式中表示和/并类型,json,jsonschema,Json,Jsonschema,我正在尝试使用JSON模式记录JSON的现有用法。系统允许对象属性之一具有以下两种可能性 或者 { "tracking_number" : 123 } 或 如何使用json模式来表达这一点?使用anyOf断言属性必须符合一个或另一个模式 { "type": "object", "properties": { "tracking_number": { "anyOf": [ { "$ref": "#/d

我正在尝试使用JSON模式记录JSON的现有用法。系统允许对象属性之一具有以下两种可能性

或者

{
    "tracking_number" : 123
}


如何使用json模式来表达这一点?

使用
anyOf
断言属性必须符合一个或另一个模式

{
    "type": "object",
    "properties": {
        "tracking_number": {
            "anyOf": [
                { "$ref": "#/definitions/tracking_number" },
                { "type": "array", "items": { "$ref": "#/definitions/tracking_number" }
            ]
    },
    "definitions": {
        "tracking_number": { "type": "integer" }
    }
}

事实证明,在这种情况下,“其中之一”更适合我。但你让我走上了正确的道路。这里描述了这些关键词:
{
    "type": "object",
    "properties": {
        "tracking_number": {
            "anyOf": [
                { "$ref": "#/definitions/tracking_number" },
                { "type": "array", "items": { "$ref": "#/definitions/tracking_number" }
            ]
    },
    "definitions": {
        "tracking_number": { "type": "integer" }
    }
}