ruby – JSON模式下的JSON数据验证
发布时间:2020-12-17 03:23:26 所属栏目:百科 来源:网络整理
导读:我正在尝试用 ruby gem json-schema验证一些json数据. 我有以下架构: {"$schema": "http://json-schema.org/draft-04/schema#","title": "User","description": "A User","type": "object","properties": { "name": { "description": "The user name","type
我正在尝试用
ruby gem json-schema验证一些json数据.
我有以下架构: { "$schema": "http://json-schema.org/draft-04/schema#","title": "User","description": "A User","type": "object","properties": { "name": { "description": "The user name","type": "string" },"e-mail": { "description": "The user e-mail","type": "string" } },"required": ["name","e-mail"] } 以及以下json数据: { "name": "John Doe","e-mail": "john@doe.com","username": "johndoe" } 并且使用此数据作为输入的JSON :: Validator.validate返回true. 不应该是假的,因为架构上没有指定用户名吗? 解决方法
您需要在JSON模式中定义
additionalProperties 并将其设置为false:
{ "$schema": "http://json-schema.org/draft-04/schema#","properties": { "name": { "description": "The user name","type": "string" },"e-mail": { "description": "The user e-mail","type": "string" } },"e-mail"],"additionalProperties": false } 现在验证应该按预期返回false: require 'json' require 'json-schema' schema = JSON.load('...') data = JSON.load('...') JSON::Validator.validate(schema,data) # => false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |