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

Ruby中使用JSON Schema仅校验对象类型而非内部属性的方法

Ruby 使用JSON Schema仅校验数据为对象类型的实现

你当前提供的代码已经可以满足需求,JSON Schema中仅配置type为object时,只会校验目标数据是否为对象/Hash类型,不会校验内部的任意键值内容。

可用代码示例

require "json-schema"
# 仅指定校验类型为对象,无任何内部属性校验规则
schema = {"type" => "object"}
begin
    # 校验Hash类型数据会返回true,无需关心内部键值
    JSON::Validator.validate(schema, {"a": 5})
    # 带有任意数量、任意类型键值的Hash都可校验通过
    JSON::Validator.validate(schema, {"name": "张三", "age": 25, "hobbies": ["打球", "阅读"]})
    # 非Hash类型(如数组、字符串、数字等)会触发校验失败
    JSON::Validator.validate(schema, [1,2,3])
rescue JSON::Schema::ValidationError => e
    puts e.message
end

校验规则说明

  • 仅配置{"type" => "object"}的Schema只会校验数据的顶层类型,所有符合Ruby Hash格式、JSON对象格式的数据都会通过校验
  • 内部的键名、值类型、值内容完全不受限制,符合你不需要校验内部属性的需求
  • 如果后续需要限制仅能出现指定属性,才需要额外添加properties和additionalProperties配置,当前场景不需要增加这类参数

内容的提问来源于stack exchange,提问作者Basa Sai ram

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:21:02