首页 > 解决方案 > 有没有办法在 json 模式中重用正则表达式模式作为 patternProperties 键和字符串类型模式?

问题描述

例如,在GBFSgbfs.json['properties']['data']项目中,对象中的顶级键被描述为

语言:将在其余文件中使用的语言。它必须与 system_information.json 文件中的值匹配。

这是由schemapatternProperties中的定义gbfs.json强制执行的。但是正如该字段的解释所描述的,该属性应该匹配具有相同正则表达式模式的字符串属性system_information.json

是否有一种方法可以定义此正则表达式模式一次并将其用作字段的patternProperties键和字符串类型模式language

标签: jsonschema

解决方案


不是在 JSON Schema 语法本身中,但您可以上一层并以编程方式生成您的模式,例如使用为该正则表达式使用占位符变量的模板。然后,您可以使用模板在架构更改时重新生成架构——例如,如果您的架构通常保存在 git 中,那么您可以使用 git commit 挂钩在所有使用它的地方更新正则表达式。或者,如果您使用 ansible 部署架构,您也可以在那里生成带有模板的文件。


推荐阅读