"Description": {
"en": "English Description",
"sv": "Swedish Description",
"fr": "French Description"
},
我在文档中阅读了我可以使用'格式'属性来使用函数检查自定义格式。因此,我编写了一种将字符串作为参数的方法,如果它是RFC1766语言字符串。
@_checks_drafts('rfc1766lang')
def rfc1766lang(instance):
"""some logic, return True if rfc1766"""
我找不到有关如何将其应用于对象键进行验证的任何示例,而不是值。 这是可能的吗?我尝试了以下类似的事情,但我无法成功我知道,如果我的JSON字符串如下,那将容易得多。但是,这不是现在的选择。
"Description": [{
"lan": "en",
"text": "Description in English"
}, {
"lan": "sv",
"name": "Description in Swedish"
}]
这个是一个非常好的和相关的问题,因为这实际上是V5
的Proped语法的一部分,因此官方的Meta-Schema也必须处理此问题。json模式无法为对象键指定“格式”。 JSON模式支持对象键的唯一“验证”是
patternProperties
,它提供正则表达式。对于语言代码,您能做的最好的可能就是:
{
"type": "object",
"patternProperties": {
"^[a-zA-Z]+(-[a-zA-Z]+)*$": {...}
},
"additionalProperties": false
}
将限制数据,以便仅允许属性与该模式匹配 - 但这不是您要寻找的完整验证,恐怕。