jsonschema - 有没有办法在 json 模式中重用正则表达式模式作为 patternProperties 键和字符串类型模式?
问题描述
例如,在GBFSgbfs.json['properties']['data']
项目中,对象中的顶级键被描述为:
语言:将在其余文件中使用的语言。它必须与 system_information.json 文件中的值匹配。
这是由schemapatternProperties
中的定义gbfs.json
强制执行的。但是正如该字段的解释所描述的,该属性应该匹配具有相同正则表达式模式的字符串属性system_information.json
。
是否有一种方法可以定义此正则表达式模式一次并将其用作字段的patternProperties
键和字符串类型模式language
?
解决方案
不是在 JSON Schema 语法本身中,但您可以上一层并以编程方式生成您的模式,例如使用为该正则表达式使用占位符变量的模板。然后,您可以使用模板在架构更改时重新生成架构——例如,如果您的架构通常保存在 git 中,那么您可以使用 git commit 挂钩在所有使用它的地方更新正则表达式。或者,如果您使用 ansible 部署架构,您也可以在那里生成带有模板的文件。
推荐阅读
- git - 覆盖 .git 目录,从对象中恢复状态
- git - 克隆 Laravel Homestead 时出错
- r - predict.glmnet 结果中的缺失值
- python - ImportError:无法导入名称“speech_v1p1beta1”
- node.js - `webpack` 函数有什么作用?
- .net - 通过 TeamCity 在 docker 容器内恢复私有 NuGet 服务器
- c++11 - 字符串大小限制输入 cin.get() 和 getline()
- c++ - 使用 std::function 作为成员函数,它捕获 `this`,并在析构函数之后从复制的 lambda 访问它
- haskell - 如何处理 Haskell 中的严格类型检查?
- jquery - jQuery Bootgrid - 条件格式化程序