jsonschema - 有没有办法将默认值添加到 json 模式数组
问题描述
我只是想了解是否有办法将一组默认值添加到数组中。(我认为没有。)
因此,理想情况下,我想要类似于您想象以下工作的方式。即 fileTypes 元素默认为 ["jpg", "png"] 的数组
"fileTypes": {
"description": "The accepted file types.",
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"enum": ["jpg", "png", "pdf"]
},
"default": ["jpg", "png"]
},
当然,说了这么多……上面的内容似乎确实被验证为 json 模式,但是例如在 VS 代码中,这个默认值不会像创建文档时填充的其他默认值(如字符串)那样填充。
解决方案
根据规范,它似乎是有效的。
9.2. “default” 对这个关键字的值没有任何限制。当此关键字的多次出现适用于单个子实例时,实现应该删除重复项。
此关键字可用于提供与特定模式关联的默认 JSON 值。建议默认值对关联的模式有效。
见https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.9.2
在 JSON Schema 中利用该关键字取决于工具,听起来VS 代码并非如此。