我在JSON数组中接收以下项
{locations: [{locId: "1", locName: "ST1"}, {locId: "2", locName: "ST2"}, {locId: "3", locName: "ST3"}]}我的要求是在locations中,locName的值必须是ST1、ST2或ST3中的一个(我不关心locId)。如何在JSONSchema中强制执行此操作。我看到您可以使用array,但是我如何指定数组的object\item应该具有特定属性的一个预定义的值呢?
发布于 2019-09-17 13:54:41
可以使用enum关键字限制给定属性的允许值:
"locName": {
"type": "string",
"enum": ["ST1", "ST2", "ST3"]
}完整架构:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"locations": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"locId": {
"type": "string"
},
"locName": {
"type": "string",
"enum": ["ST1", "ST2", "ST3"]
}
},
"required": [
"locId",
"locName"
]
},
]
}
},
"required": [
"locations"
]
}https://stackoverflow.com/questions/57967970
复制相似问题