@@ -530,7 +530,7 @@ private function processIf($data, Context $options, $path)
530530 }
531531
532532 /**
533- * @param \stdClass $data
533+ * @param object $data
534534 * @param Context $options
535535 * @param string $path
536536 * @throws InvalidValue
@@ -568,7 +568,7 @@ private function processObjectRequired($data, Context $options, $path)
568568 }
569569
570570 /**
571- * @param \stdClass $data
571+ * @param object $data
572572 * @param Context $options
573573 * @param string $path
574574 * @param ObjectItemContract|null $result
@@ -741,7 +741,7 @@ private function processObject($data, Context $options, $path, $result = null)
741741
742742 $ array = array ();
743743 if (!empty ($ this ->__dataToProperty [$ options ->mapping ])) { // todo skip on $options->validateOnly
744- foreach ((array )$ data as $ key => $ value ) {
744+ foreach (! $ data instanceof \stdClass ? get_object_vars ( $ data ) : (array )$ data as $ key => $ value ) {
745745 if ($ import ) {
746746 if (isset ($ this ->__dataToProperty [$ options ->mapping ][$ key ])) {
747747 $ key = $ this ->__dataToProperty [$ options ->mapping ][$ key ];
@@ -754,7 +754,7 @@ private function processObject($data, Context $options, $path, $result = null)
754754 $ array [$ key ] = $ value ;
755755 }
756756 } else {
757- $ array = (array )$ data ;
757+ $ array = ! $ data instanceof \stdClass ? get_object_vars ( $ data ) : (array )$ data ;
758758 }
759759
760760 if (!$ options ->skipValidation ) {
@@ -1135,7 +1135,7 @@ public function process($data, Context $options, $path = '#', $result = null)
11351135 $ result = $ this ->processAllOf ($ data , $ options , $ path );
11361136 }
11371137
1138- if ($ data instanceof \stdClass ) {
1138+ if (is_object ( $ data) ) {
11391139 $ result = $ this ->processObject ($ data , $ options , $ path , $ result );
11401140 }
11411141
0 commit comments