-
-
Notifications
You must be signed in to change notification settings - Fork 242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validator return error when data is an array with hash with symbolic keys #94
Comments
jennyd
added a commit
to jennyd/json-schema
that referenced
this issue
Jul 15, 2014
JSON::Schema.add_indifferent_access was only able to recurse into hashes directly contained within another hash; as soon as it found a value which was not a hash it stopped. This meant that hashes within arrays were not being made indifferent to the key type, and so data which included symbol keys in a hash in an array were failing validation against a JSON schema when they should have been valid. This commit adds a failing minimal test for this case and fixes voxpupuli#104. We think that voxpupuli#104 is a duplicate of voxpupuli#101 and voxpupuli#94 so those issues are likely to be fixed by this as well.
jennyd
added a commit
to jennyd/json-schema
that referenced
this issue
Jul 16, 2014
JSON::Schema.add_indifferent_access was only able to recurse into hashes directly contained within another hash; as soon as it found a value which was not a hash it stopped. This meant that hashes within arrays were not being made indifferent to the key type, and so data which included symbol keys in a hash in an array were failing validation against a JSON schema when they should have been valid. This commit adds a failing minimal test for this case and fixes voxpupuli#104. We think that voxpupuli#104 is a duplicate of voxpupuli#101 and voxpupuli#94 so those issues are likely to be fixed by this as well.
jennyd
added a commit
to jennyd/json-schema
that referenced
this issue
Jul 16, 2014
JSON::Schema.add_indifferent_access was only able to recurse into hashes directly contained within another hash; as soon as it found a value which was not a hash it stopped. This meant that hashes within arrays were not being made indifferent to the key type, and so data with symbol keys in a hash in an array were failing validation when they should have been valid. This commit adds a failing minimal test for this case and fixes voxpupuli#104. We think that voxpupuli#104 is a duplicate of voxpupuli#101 and voxpupuli#94 so those issues are likely to be fixed by this as well.
jennyd
added a commit
to jennyd/json-schema
that referenced
this issue
Jul 16, 2014
JSON::Schema.add_indifferent_access was only able to recurse into hashes directly contained within another hash; as soon as it found a value which was not a hash it stopped. This meant that hashes within arrays were not being made indifferent to the key type, and so data with symbol keys in a hash in an array were failing validation when they should have been valid. This commit adds a minimal test for this case and fixes voxpupuli#104. We think that voxpupuli#104 is a duplicate of voxpupuli#101 and voxpupuli#94 so those issues are likely to be fixed by this as well.
Should be fixed in 2.2.3 via fix from @jennyd - let me know if you still see an issue. Thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Its a code to reproduce this bug:
require 'rubygems'
require 'json-schema'
schema = {
"type" => "array",
"items" => {
"type" => "object",
"required" => ["a"],
"properties" => {
"a" => {"type" => "integer"}
}
}
}
data_ok = [{'a' => 5}]
data_er = [{a: 5}]
JSON::Validator.validate(schema, data_ok)
JSON::Validator.validate(schema, data_er)
The text was updated successfully, but these errors were encountered: