diff --git a/src/JsonSchema/Constraints/Object.php b/src/JsonSchema/Constraints/Object.php index cbee0b5e..e9fc29e5 100644 --- a/src/JsonSchema/Constraints/Object.php +++ b/src/JsonSchema/Constraints/Object.php @@ -82,7 +82,11 @@ public function validateElement($element, $matches, $objectDefinition = null, $p // additional properties defined if (!in_array($i, $matches) && $additionalProp && !$definition) { - $this->checkUndefined($value, $additionalProp, $path, $i); + if ($additionalProp === true) { + $this->checkUndefined($value, null, $path, $i); + } else { + $this->checkUndefined($value, $additionalProp, $path, $i); + } } // property requires presence of another diff --git a/tests/JsonSchema/Tests/Constraints/AdditionalPropertiesTest.php b/tests/JsonSchema/Tests/Constraints/AdditionalPropertiesTest.php index a0c13ea6..9df7ae39 100644 --- a/tests/JsonSchema/Tests/Constraints/AdditionalPropertiesTest.php +++ b/tests/JsonSchema/Tests/Constraints/AdditionalPropertiesTest.php @@ -124,6 +124,19 @@ public function getValidTests() }, "additionalProperties": {"type":"string"} }' + ), + array( + '{ + "prop":"1", + "additionalProp":[] + }', + '{ + "type":"object", + "properties":{ + "prop":{"type":"string"} + }, + "additionalProperties": true + }' ) ); }