diff --git a/src/JsonDecoder.php b/src/JsonDecoder.php index c5a75f8..fa270f7 100644 --- a/src/JsonDecoder.php +++ b/src/JsonDecoder.php @@ -106,17 +106,17 @@ public function decode($json, $schema = null) ); } - $decoded = $this->decodeJson($json); + $data = $this->decodeJson($json); - if (null !== $schema) { - $errors = $this->validator->validate($decoded, $schema); + if (null !== $schema || isset($data->{'$schema'})) { + $errors = $this->validator->validate($data, $schema); if (count($errors) > 0) { throw ValidationFailedException::fromErrors($errors); } } - return $decoded; + return $data; } /** diff --git a/src/JsonEncoder.php b/src/JsonEncoder.php index fc7b30a..dba8c63 100644 --- a/src/JsonEncoder.php +++ b/src/JsonEncoder.php @@ -130,7 +130,7 @@ public function __construct(JsonValidator $validator = null) */ public function encode($data, $schema = null) { - if (null !== $schema) { + if (null !== $schema || isset($data->{'$schema'})) { $errors = $this->validator->validate($data, $schema); if (count($errors) > 0) {