From e2b9f39b1905ec20db3aa67a03fed8eeb4cdbe0c Mon Sep 17 00:00:00 2001 From: Thomas Hansen Date: Sat, 16 Jul 2022 11:21:42 +0200 Subject: [PATCH] [PHP] ObjectSerializer::deserialize() associative arrays bugfix (#12849) * [PHP] ObjectSerializer::deserialize(): fix bug with json_encode * [AUTOGENERATED] update samples --- .../src/main/resources/php/ObjectSerializer.mustache | 5 +++++ .../petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/php/ObjectSerializer.mustache b/modules/openapi-generator/src/main/resources/php/ObjectSerializer.mustache index 6b27c09d5f4..20122a95505 100644 --- a/modules/openapi-generator/src/main/resources/php/ObjectSerializer.mustache +++ b/modules/openapi-generator/src/main/resources/php/ObjectSerializer.mustache @@ -446,6 +446,11 @@ class ObjectSerializer return $data; } else { $data = is_string($data) ? json_decode($data) : $data; + + if (is_array($data)) { + $data = (object)$data; + } + // If a discriminator is defined and points to a valid subclass, use it. $discriminator = $class::DISCRIMINATOR; if (!empty($discriminator) && isset($data->{$discriminator}) && is_string($data->{$discriminator})) { diff --git a/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php b/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php index 62756950ee2..080af144aab 100644 --- a/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php +++ b/samples/client/petstore/php/OpenAPIClient-php/lib/ObjectSerializer.php @@ -455,6 +455,11 @@ class ObjectSerializer return $data; } else { $data = is_string($data) ? json_decode($data) : $data; + + if (is_array($data)) { + $data = (object)$data; + } + // If a discriminator is defined and points to a valid subclass, use it. $discriminator = $class::DISCRIMINATOR; if (!empty($discriminator) && isset($data->{$discriminator}) && is_string($data->{$discriminator})) {