JSON模式验证器应该如何处理对象的子对象具有默认值但父对象没有'
的情况想象一下以下架构
{
"type": "object",
"properties": {
"element": {
"type": "object",
"properties": {
"number" : { "type": "integer", "default": 15 }
}
}
}
}
根据以下JSON验证:{}
结果为{}
。
但不应该导致
{
"element": {
"number": 15
}
}
我们如何解释default
- 关键字?我阅读了标准中的相应行,但他们还没有帮助我。
答案 0 :(得分:1)
验证实例的行为仅返回“有效”或“无效”。 JSON Schema验证不会以任何方式更改实例,或“导致”新实例。
“default”是一个相当通用的元数据关键字,可以(并且被允许)对不同的人意味着不同的东西。它并不一定意味着您可以在不存在时填写值。它至少意味着您可以在决定创建初始值时采用初始值。
与“title”和“description”类似,“default”关键字主要针对用户界面。
答案 1 :(得分:0)
好问题..
但是有一个简单的解决方案。您可以使用 enum 关键字作为默认值。请参阅下面的示例,它可以为您提供快照
filterType: {
type: 'String',
required: true,
enum: ["Accounts", "portfolios"]
}
这样该字段应该包含这两个值中的任何一个......我认为这对你有用......