【发布时间】:2020-01-08 05:36:44
【问题描述】:
我希望我的 JSON 架构接受一个列表,但列表中的值来自一个集合列表并且可以以任何顺序出现!
即["GOV","CRD", "CON"] 可以接受,["CRD", "GOV", "COM"] 也可以。
我目前的想法是这样的:
"sources":{"type": "array",
"uniqueItems": true,
"emum": ["CRD", "GOV", "COM", "CON", "OTH", "UTL", "PRO", "TEL", "POS", "INS", "CCJ", "POP", "VOT", "MVR", "PPS", "DRV", "PMC"]},
但我不完全确定这会达到我想要的效果。我已经阅读了items,您可以在其中定义列表中的值,但看起来这会设置顺序以及列表中的项目数。虽然两者都可以使用 oneOf 结合定义来解决。
例如(为节省空间而缩短)如果我错了,请随时纠正:
{
"definitions": {
"source":{"emum": ["CRD", "GOV", "COM", "CON", "OTH", "UTL", "PRO", "TEL", "POS", "INS", "CCJ", "POP", "VOT", "MVR", "PPS", "DRV", "PMC", ""]},
}
"sources":{"type": "array",
"uniqueItems": true,
"items": {
"source": {"$ref": "#/definitions/source"},
"source": {"$ref": "#/definitions/source"},
"source": {"$ref": "#/definitions/source"},
.
.
.
}
}
}
我的问题是:有更好的方法吗?
【问题讨论】:
标签: arrays json validation