我在JSON数组中收到以下项目
{locations: [{locId: "1", locName: "ST1"}, {locId: "2", locName: "ST2"}, {locId: "3", locName: "ST3"}]}
我的要求是,在locations
中,locName
的值必须是ST1
,ST2
或ST3
中的一个(我不在乎关于locId
)。如何在JSONSchema中强制执行此操作。我看到您可以使用array
,但是如何指定数组的object \ item应该具有特定属性的预定义值之一。
答案 0 :(得分:1)
您可以使用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"
]
}