public function deserialize($data, array $options = [])
    {
        if (!is_array($data)) {
            $data = json_decode($data, true);
            if (JSON_ERROR_NONE !== json_last_error()) {
                throw new DeserializeMessageFailed($this->getLastErrorMessage());
            }
        }

        return parent::deserialize($data, $options);
    }
public function deserialize($data, array $options = [])
    {
        if (!is_array($data)) {
            $data = json_decode($data, true);
            if (JSON_ERROR_NONE !== json_last_error()) {
                throw new DeserializeMessageFailed($this->getLastErrorMessage());
            }
        }

        return parent::deserialize($data, $options);
    }
{@inheritdoc}

@return Message