scalar_or<My\Type>
class MyDto
{
    /**
     * @JMS\Type("scalar_or_object<App\Dto\SomeObject>")
     */
    public bool|SomeObject $value;
}
A custom JMS type handler for bool|SomeObject union.
namespace App\Serializer\Handler;
use JMS\Serializer\Context;
use JMS\Serializer\GraphNavigatorInterface;
use JMS\Serializer\Handler\SubscribingHandlerInterface;
use JMS\Serializer\JsonDeserializationVisitor;
use JMS\Serializer\JsonSerializationVisitor;
use JMS\Serializer\VisitorInterface;
use JMS\Serializer\DeserializationContext;
use JMS\Serializer\SerializationContext;
final class BoolOrObjectHandler implements SubscribingHandlerInterface
{
    public static function getSubscribingMethods(): array
    {
        return [
            [
                'type' => 'bool_or_object<App\\Dto\\SomeObject>',
                'format' => 'json',
                'direction' => GraphNavigatorInterface::DIRECTION_DESERIALIZATION,
                'method' => 'deserialize',
            ],
            [
                'type' => 'bool_or_object<App\\Dto\\SomeObject>',
                'format' => 'json',
                'direction' => GraphNavigatorInterface::DIRECTION_SERIALIZATION,
                'method' => 'serialize',
            ],
        ];
    }
    public function deserialize(
        JsonDeserializationVisitor $visitor,
        $data,
        array $type,
        DeserializationContext $context
    ) {
        if (is_bool($data)) {
            return $data;
        }
        return $context->getNavigator()->accept($data, [
            'name' => 'App\\Dto\\SomeObject'
        ], $context);
    }
    public function serialize(
        JsonSerializationVisitor $visitor,
        $data,
        array $type,
        SerializationContext $context
    ) {
        if (is_bool($data)) {
            return $data;
        }
        return $context->getNavigator()->accept($data, [
            'name' => 'App\\Dto\\SomeObject'
        ], $context);
    }
}use App\Serializer\Handler\BoolOrObjectHandler;
use JMS\Serializer\SerializerBuilder;
$serializer = SerializerBuilder::create()
    ->configureHandlers(function($handlerRegistry) {
        $handlerRegistry->registerSubscribingHandler(new BoolOrObjectHandler());
    })
    ->build();use JMS\Serializer\Annotation as JMS;
class MyDto
{
    /**
     * @JMS\Type("bool_or_object<App\Dto\SomeObject>")
     */
    public bool|SomeObject $value;
}