jsonschema - JSON 模式 - 变量 contentMediaType - 使用正则表达式?
问题描述
是否可以编写一个包含 base64 编码内容的 JSON 模式,其中媒体类型可以是任何东西?我目前有以下内容:
"media" : {
"type": "object",
"properties": {
"content" : {
"type": "string",
"contentEncoding": "base64",
"contentMediaType": "[a-z]\/[a-z]"
}
}
},
这是否有效。可以对contentMediaType
属性使用正则表达式吗?
如果不是,以下是否有效?
"media" : {
"type": "object",
"properties": {
"content" : {
"type": "string",
"contentEncoding": "base64",
},
"contentMediaType": {
"type": "string",
"pattern": "[a-z]\/[a-z]"
}
}
},
实现这一目标的最清晰方法是什么?
解决方案
这就是规范所说的:https ://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.8.4
contentMediaType
是一个字符串。您的正则表达式是一个字符串,因此它是按字面意思解释的。RFC 2046 中没有匹配的媒体类型,所以我不希望事情进展顺利。但是你的正则表达式太松散了,为什么还要包括它呢?
还要记住,JSON Schema 将此关键字解释为仅注释(https://json-schema.org/draft/2020-12/json-schema-validation.html#content) - 这些属性仅存在于向消费应用程序提供信息,并且永远不会有时间针对此模式评估数据实例会因此关键字而失败。
推荐阅读
- spring-boot - 在 spring-boot 中找不到带有 thymeleaf 库的静态资源
- git - 交互变基后保留中间分支指针
- typescript - Typescript中的复杂变量声明和变量初始化
- spring-boot - Spring Boot Security 将页面显示为不安全
- c - While 循环忽略比较两个浮点变量的布尔表达式
- drupal - 在 drupal 8 中添加图像 wirh 实体媒体浏览器
- python - 用于实时流的 n 条记录的生成器
- django - 连接到模型列表的组权限
- react-native - 反应本机复选框不起作用
- python - Python 递减字典