以下是我的json架构的部分版本。我目前正在使用json-schema
Gem来验证以下(部分)架构:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"botSettings": {
"type": "object",
"properties": {
"welcomeMessage": {
"type": "object",
"required": ["body"],
"properties": {
"title": { "type": "string" },
"body": { "type": "string" },
"image": { "#ref": "#/definitions/image" }
}
},
"invalidCommandMessage": { "type": "string" }
}
}
}
}
针对以下(部分)json:
{
"botSettings": {
"welcomeMessage": {
"title": "Welcome to the bot",
"body": "This is the body right here"
}
}
}
在严格模式下验证时,它会声明"属性'#/ botSettings / welcomeMessage'不包含' image'"的必需属性,但我只需要设置为" body"。那我在这里错过了什么?
答案 0 :(得分:1)
你没有遗漏任何东西。标准JSON Schema验证器应该认为您的JSON有效。验证失败可能是验证器中的错误,验证器中的某些非标准行为(检查配置),或者它没有根据您认为的架构进行验证(缓存问题)。