如何验证 JSON 架构中的属性数量
How to validate number of properties in JSON schema
我正在尝试为 JSON 的一部分创建一个架构,并精简了一个我正在努力实现的示例。
我有以下 JSON 架构:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Set name",
"description": "The exmaple schema",
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}
与架构相比,以下 JSON 被归类为有效:
{
"name": "W",
"name": "W"
}
我知道应该有关于两个同名字段的警告,但是如果提交了上面的字段,有没有办法强制验证失败?我希望它仅在字段 'name'
出现一次时才验证
有一个 maxProperties
约束可以限制对象中属性的总数。
尽管具有重复属性的数据是一个棘手的情况,因为许多 json 解码实现会忽略重复项。
所以您的 JSON 模式验证库甚至不知道重复项的存在。
这不属于 JSON 架构的责任范围。 JSON 架构建立在 JSON 之上。在 JSON 中,对象中重复属性的行为未定义。如果你想收到关于此的警告,你应该 运行 通过单独的验证步骤确保有效 JSON,然后再将其传递给 JSON 模式验证器。
我正在尝试为 JSON 的一部分创建一个架构,并精简了一个我正在努力实现的示例。
我有以下 JSON 架构:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Set name",
"description": "The exmaple schema",
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": false
}
与架构相比,以下 JSON 被归类为有效:
{
"name": "W",
"name": "W"
}
我知道应该有关于两个同名字段的警告,但是如果提交了上面的字段,有没有办法强制验证失败?我希望它仅在字段 'name'
出现一次时才验证有一个 maxProperties
约束可以限制对象中属性的总数。
尽管具有重复属性的数据是一个棘手的情况,因为许多 json 解码实现会忽略重复项。
所以您的 JSON 模式验证库甚至不知道重复项的存在。
这不属于 JSON 架构的责任范围。 JSON 架构建立在 JSON 之上。在 JSON 中,对象中重复属性的行为未定义。如果你想收到关于此的警告,你应该 运行 通过单独的验证步骤确保有效 JSON,然后再将其传递给 JSON 模式验证器。