如何处理 JSON 模式验证中子对象的默认值?

How to handle default values of sub-objects within a JSON schema validation?

JSON 模式验证器应如何处理对象的子对象具有默认值但父对象没有的情况?

设想以下架构

{
    "type": "object",
    "properties": {
        "element": {
           "type": "object",
           "properties": {
               "number" : { "type": "integer", "default": 15 }
           }
        }
    }
}

针对以下 JSON 进行了验证:{} 结果是 {}

但它不应该导致

{
    "element": {
        "number": 15
    }
}

.

我们如何解释 default-关键字?我阅读了标准中的相应行,但它们对我没有进一步的帮助。

仅验证实例的行为 returns "valid" 或 "invalid"。 JSON 架构验证不会以任何方式更改实例,或 "result in" 新实例。

"default" 是一个相当通用的元数据关键字,它可以(并且被允许)对不同的人有不同的含义。这并不一定意味着您可以在值不存在时填写这些值。它确实意味着,至少,您可以在决定创建它时假设一个初始值。

与 "title" 和 "description" 一样,"default" 关键字主要针对用户界面。

好问题..

但是 it.You 有一个简单的解决方案可以使用 enum 默认关键字 values.See 下面的例子可以给你它的快照

  filterType: {
            type: 'String',
            required: true,
            enum: ["Accounts", "portfolios"]
        }

因此该字段应包含这两个值中的任何一个..我认为这对您有用...