我有一个像这样的JSON文档
{
"visits": {
"1": 1000,
"2": 300,
"3": 43,
}
}
但是所有键("1"
,"2"
,"3"
)实际上都是一个枚举,它存储为整数以节省存储空间。我想记录枚举的描述。例如。
1 => When the user is guest
2 => When the user is logged in
3 => When the user is admin
如何将它放在json架构中?
答案 0 :(得分:0)
您可以使用patternProperties
来描述数字属性,然后使用additionalProperties
来禁止任何与模式不匹配的属性:
{
"type": "object",
"patternProperties": {
"^(0|[1-9][0-9]*)$": {"type": "string"}
},
"additionalProperties": false
}
所以在这里,匹配^(0|[1-9][0-9]*)$
(非负整数)的任何属性都必须是字符串,并且不允许使用其他属性。
(如果您希望强制执行某种排序(例如"5"
必须仅在"4"
也已定义的情况下存在),那么您无法用JSON Schema表达它。)