【发布时间】:2017-08-17 02:08:28
【问题描述】:
我正在验证一个 json 方案,我需要检查 json 是否有一个“活动”数组,如果没有,它是否有一个必须为真的“活动”属性。
我的架构很简单note the enum is not working
const viewSchema = {
"type": "object",
"anyOf": [
{"required": ["live"]},
{"required": ["activities"]}
],
"properties":{
"title": {"type": "string"},
"live": {"type": "boolean", "enum": [ true ]},
"activities": {"type": "array"}
}
所以我正在尝试验证以下内容
isValid({title: 'a title'}) // false: activities or live required
isValid({title: 'a title', activities: []}) // true
isValid({title: 'a title', live: true}) // true
isValid({title: 'a title', live: false) // true - this should be false
【问题讨论】:
-
您的架构是正确的。如果您得到错误的结果,则可能是验证器中的错误。
-
使用jsonschemavalidator.net 上的验证器测试您的架构对于这个 json {title: 'a title', live: false} 我得到 Found 1 error(s) Message: Value false is not defined in enum .所以,你的架构没问题。
标签: jsonschema