Skip to content
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

Closed
aglushkov opened this issue Jan 9, 2014 · 1 comment

Comments

@aglushkov
Copy link

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)

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.
@hoxworth
Copy link
Contributor

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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants