我需要定义一张地图。但我也想限制可能的密钥。
这是我试图做的事情。
type: object
description: Key Value Map with user data. Possible values for the keys ("KEY_1", "KEY_2", "KEY_3")
additionalProperties:
type: object
是否可以使用枚举来定义键? (map返回int String,Object。但这不是问题的一部分)
感谢您的帮助。
答案 0 :(得分:2)
使用additionalPropertie
时,无法定义已接受的密钥集。但是如果我的理解是正确的,那么这个散列映射的两个例子就是JSON:
JSON示例1:
{
"KEY_1": { ... },
"KEY_2": { ... },
"KEY_3": { ... }
}
JSON示例2:
{
"KEY_1": { ... },
"KEY_3": { ... }
}
这个带有一组已定义键的hashmap基本上是一个包含object类型的可选(即非必需)属性的对象,因此可以像任何其他对象一样定义:
type: object
properties:
KEY_1:
type: object
KEY_2:
type: object
KEY_3:
type: object
nb:使用$ ref避免必须为每个KEY属性定义对象是个好主意:
type: object
properties:
KEY_1:
$ref: '#/definitions/TheObjectDefinition'
KEY_2:
$ref: '#/definitions/TheObjectDefinition'
KEY_3:
$ref: '#/definitions/TheObjectDefinition'