如何在 json 模式中表示 sum/union 类型
Posted
技术标签:
【中文标题】如何在 json 模式中表示 sum/union 类型【英文标题】:How to represent sum/union types in in json schema 【发布时间】:2016-05-28 18:51:13 【问题描述】:我正在尝试使用 json-schema 记录 JSON 的现有使用。对于对象属性之一,系统允许以下两种可能性。
要么
"tracking_number" : 123
或者
"tracking_number" : [ 123, 124, 125 ]
如何使用 json 模式来表达这一点?
【问题讨论】:
【参考方案1】:使用anyOf
断言该属性必须符合一个或另一个架构。
"type": "object",
"properties":
"tracking_number":
"anyOf": [
"$ref": "#/definitions/tracking_number" ,
"type": "array", "items": "$ref": "#/definitions/tracking_number"
]
,
"definitions":
"tracking_number": "type": "integer"
【讨论】:
事实证明,在这种情况下,“oneOf”对我来说更好。但你让我走上了正确的道路。 这里描述了这些关键字:json-schema.org/understanding-json-schema/reference/…以上是关于如何在 json 模式中表示 sum/union 类型的主要内容,如果未能解决你的问题,请参考以下文章
如果它们来自数据源,如何在 graphql 模式中表示枚举?
使用 circe 时如何在 Scala 中表示动态 JSON 键