我有一个json模式,它有一个数组,我想验证数组中的所有项目,但是该模式只验证第一个元素,为什么该模式不验证其余元素?
架构:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"codigoEmpresa": {
"type": "string"
},
"nombreEmpresa": {
"type": "string"
},
"planes": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"codigoPlan": {
"type": "string"
},
"nombrePlan": {
"type": "string"
},
"tipoProducto": {
"type": "integer"
}
},
"required": [
"codigoPlan",
"nombrePlan",
"tipoProducto"
]
}
]
}
},
"required": [
"codigoEmpresa",
"nombreEmpresa",
"planes"
]
}
无效的json:
{
"codigoEmpresa":"204",
"nombreEmpresa":"Claro",
"planes":[
{
"codigoPlan":"M-PP-Premium-30.03",
"nombrePlan":"Plan Max Premium Libre",
"tipoProducto":1
},
{
"tipoProducto":3
}
]
}
模式验证器:
https://json-schema-validator.herokuapp.com/
json中需要数组第二个元素中的nombrePlan和tipoProducto属性,但是模式验证器不会对其进行验证。
答案 0 :(得分:1)
"items": [ { ... } ]
模式中的应该是
"items": { ... }
这种形式的 items
关键字会将单个子模式应用于数组中找到的所有元素。