首页 > 解决方案 > 有没有办法将默认值添加到 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 代码中,这个默认值不会像创建文档时填充的其他默认值(如字符串)那样填充。

标签: jsonschema

解决方案


根据规范,它似乎是有效的。

9.2. “default” 对这个关键字的值没有任何限制。当此关键字的多次出现适用于单个子实例时,实现应该删除重复项。

此关键字可用于提供与特定模式关联的默认 JSON 值。建议默认值对关联的模式有效。

https://json-schema.org/draft/2020-12/json-schema-validation.html#rfc.section.9.2

在 JSON Schema 中利用该关键字取决于工具,听起来VS 代码并非如此。


推荐阅读