JSON 模式验证:验证对象数组
JSON Schema validation: validate array of objects
我开始关注 JSON 并想验证它。
[
{
"remindAt": "2015-08-23T18:53:00+02:00",
"comment": "Postman Comment"
},
{
"remindAt": "2015-08-24T18:53:00+02:00",
"comment": "Postman Comment"
}
]
我的架构目前如下所示
{
"type": "array",
"required": true,
"properties": {
"type": "object",
"required": false,
"additionalProperties": false,
"properties": {
"remindAt": {
"required": true,
"type": "string",
"format": "date-time"
},
"comment": {
"required": true,
"type": "string"
}
}
}
}
这是行不通的。即使我从 JSON ddata 中删除评论,它也会验证为真。我想我的架构文件的结构是错误的。
为了验证我使用以下库
https://packagist.org/packages/justinrainbow/json-schema
有人可以向我解释我做错了什么以及我如何正确验证给定的 JSON 数据吗?
提前致谢
您的架构中存在一些错误。首先,您正在为数组对象使用 properties。 属性是对象的子句,不是数组,所以会被忽略。
从json-schema v4开始,需要是数组
以下架构需要数组中所有项目的 remindAt 和注释属性:
{
"type": "array",
"items": {
"additionalProperties": false,
"properties": {
"remindAt": {
"type": "string",
"format": "date-time"
},
"comment": {
"type": "string"
}
},
"required": ["remindAt", "comment"]
}
}
我开始关注 JSON 并想验证它。
[
{
"remindAt": "2015-08-23T18:53:00+02:00",
"comment": "Postman Comment"
},
{
"remindAt": "2015-08-24T18:53:00+02:00",
"comment": "Postman Comment"
}
]
我的架构目前如下所示
{
"type": "array",
"required": true,
"properties": {
"type": "object",
"required": false,
"additionalProperties": false,
"properties": {
"remindAt": {
"required": true,
"type": "string",
"format": "date-time"
},
"comment": {
"required": true,
"type": "string"
}
}
}
}
这是行不通的。即使我从 JSON ddata 中删除评论,它也会验证为真。我想我的架构文件的结构是错误的。
为了验证我使用以下库 https://packagist.org/packages/justinrainbow/json-schema
有人可以向我解释我做错了什么以及我如何正确验证给定的 JSON 数据吗?
提前致谢
您的架构中存在一些错误。首先,您正在为数组对象使用 properties。 属性是对象的子句,不是数组,所以会被忽略。
从json-schema v4开始,需要是数组
以下架构需要数组中所有项目的 remindAt 和注释属性:
{
"type": "array",
"items": {
"additionalProperties": false,
"properties": {
"remindAt": {
"type": "string",
"format": "date-time"
},
"comment": {
"type": "string"
}
},
"required": ["remindAt", "comment"]
}
}