You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求支持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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:35:24