如何在 json 模式中表示 sum/union 类型
How to represent sum/union types in in json schema
我正在尝试使用 json-schema 记录对 JSON 的现有使用。对于对象属性之一,系统允许以下两种可能性。
两者都
{
"tracking_number" : 123
}
或者
{
"tracking_number" : [ 123, 124, 125 ]
}
如何使用 json 架构来表达这一点?
使用 anyOf
断言 属性 必须符合一个或另一个模式。
{
"type": "object",
"properties": {
"tracking_number": {
"anyOf": [
{ "$ref": "#/definitions/tracking_number" },
{ "type": "array", "items": { "$ref": "#/definitions/tracking_number" }
]
},
"definitions": {
"tracking_number": { "type": "integer" }
}
}
我正在尝试使用 json-schema 记录对 JSON 的现有使用。对于对象属性之一,系统允许以下两种可能性。
两者都
{
"tracking_number" : 123
}
或者
{
"tracking_number" : [ 123, 124, 125 ]
}
如何使用 json 架构来表达这一点?
使用 anyOf
断言 属性 必须符合一个或另一个模式。
{
"type": "object",
"properties": {
"tracking_number": {
"anyOf": [
{ "$ref": "#/definitions/tracking_number" },
{ "type": "array", "items": { "$ref": "#/definitions/tracking_number" }
]
},
"definitions": {
"tracking_number": { "type": "integer" }
}
}