寻求支持JSON Schema Draft-07的Ruby验证库(含元schema验证)
适合Ruby的JSON Schema Draft-07验证库
以下两个库可以满足你同时验证自定义schema符合Draft-07元schema、以及用该schema验证数据的需求:
1. jsonschema
该库完整支持JSON Schema Draft-07,维护状态活跃,原生支持元schema验证和数据验证。
元schema验证示例
require 'jsonschema' require 'json' # 加载Draft-07元schema(建议本地保存后读取,避免网络请求) metaschema = JSON::Schema.new(JSON.parse(File.read('draft-07-schema.json'))) # 读取你的自定义schema custom_schema = JSON.parse(File.read('your-custom-schema.json')) validation_result = metaschema.validate(custom_schema) if validation_result.valid? puts "自定义schema符合Draft-07元schema规范" else puts "元schema验证失败:#{validation_result.errors.join(', ')}" end
数据验证示例
# 使用验证通过的自定义schema验证数据 data_schema = JSON::Schema.new(custom_schema) target_data = JSON.parse(File.read('your-data.json')) data_validation = data_schema.validate(target_data) if data_validation.valid? puts "数据验证通过" else puts "数据验证失败:#{data_validation.errors.join(', ')}" end
2. json_schema
这个库同样支持Draft-07,API设计简洁,内置Draft-07元schema,无需额外下载。
元schema验证示例
require 'json_schema' require 'json' # 获取内置的Draft-07元schema metaschema = JsonSchema.parse!(JsonSchema::Draft7::METASCHEMA) # 解析自定义schema custom_schema = JsonSchema.parse!(File.read('your-custom-schema.json')) # 校验自定义schema是否符合元schema schema_errors = metaschema.validate_schema(custom_schema) if schema_errors.empty? puts "自定义schema元验证通过" else puts "元验证错误:\n#{schema_errors.join("\n")}" end
数据验证示例
# 验证目标数据 target_data = JSON.parse(File.read('your-data.json')) data_errors = custom_schema.validate(target_data) if data_errors.empty? puts "数据验证通过" else puts "数据验证错误:\n#{data_errors.join("\n")}" end
内容的提问来源于stack exchange,提问作者knirirr
相关产品推荐
相关产品推荐

