在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:davishmcclurg/json_schemer开源软件地址:https://github.com/davishmcclurg/json_schemer开源编程语言:Ruby 88.2%开源软件介绍:JSONSchemerJSON Schema validator. Supports drafts 4, 6, and 7. InstallationAdd this line to your application's Gemfile: gem 'json_schemer' And then execute:
Or install it yourself as:
Usagerequire 'json_schemer'
schema = {
'type' => 'object',
'properties' => {
'abc' => {
'type' => 'integer',
'minimum' => 11
}
}
}
schemer = JSONSchemer.schema(schema)
# true/false validation
schemer.valid?({ 'abc' => 11 })
# => true
schemer.valid?({ 'abc' => 10 })
# => false
# error validation (`validate` returns an enumerator)
schemer.validate({ 'abc' => 10 }).to_a
# => [{"data"=>10, "schema"=>{"type"=>"integer", "minimum"=>11}, "pointer"=>"#/abc", "type"=>"minimum"}]
# default property values
data = {}
JSONSchemer.schema(
{
'properties' => {
'foo' => {
'default' => 'bar'
}
}
},
insert_property_defaults: true
).valid?(data)
data
# => {"foo"=>"bar"}
# schema files
require 'pathname'
schema = Pathname.new('/path/to/schema.json')
schemer = JSONSchemer.schema(schema)
# schema json string
schema = '{ "type": "integer" }'
schemer = JSONSchemer.schema(schema) OptionsJSONSchemer.schema(
schema,
# validate `format` (https://tools.ietf.org/html/draft-handrews-json-schema-validation-00#section-7)
# true/false
# default: true
format: true,
# insert default property values during validation
# true/false
# default: false
insert_property_defaults: true,
# modify properties during validation. You can pass one Proc or a list of Procs to modify data.
# Proc/[Proc]
# default: nil
before_property_validation: proc do |data, property, property_schema, _parent|
data[property] ||= 42
end,
# modify properties after validation. You can pass one Proc or a list of Procs to modify data.
# Proc/[Proc]
# default: nil
after_property_validation: proc do |data, property, property_schema, _parent|
data[property] = Date.iso8601(data[property]) if property_schema.is_a?(Hash) && property_schema['format'] == 'date'
end,
# resolve external references
# 'net/http'/proc/lambda/respond_to?(:call)
# 'net/http': proc { |uri| JSON.parse(Net::HTTP.get(uri)) }
# default: proc { |uri| raise UnknownRef, uri.to_s }
ref_resolver: 'net/http'
) CLIThe Validation errors are output as single-line JSON objects. The The schema or data can also be read from stdin using
DevelopmentAfter checking out the repo, run Build StatusContributingBug reports and pull requests are welcome on GitHub at https://github.com/davishmcclurg/json_schemer. LicenseThe gem is available as open source under the terms of the MIT License. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论