json
JSON-based bus message serializer with pluggable type adapters.
- class pipecat.bus.serializers.json.JSONMessageSerializer[source]
Bases:
MessageSerializerSerialize bus messages as JSON with pluggable type adapters.
Handles JSON-native types, enums, bytes, dataclasses, and any type with a registered
TypeAdapter(e.g.LLMContext,ToolsSchema). Adapters for common Pipecat types are registered by default. Additional type adapters can be registered viaregister_adapter().Example:
serializer = JSONMessageSerializer() data = serializer.serialize(message) restored = serializer.deserialize(data)
- register_adapter(type_: type, adapter: TypeAdapter) None[source]
Register a type adapter.
- Parameters:
type – The type to handle.
adapter – The adapter that serializes/deserializes instances of this type.
- serialize(message: BusMessage) bytes[source]
Convert a bus message to JSON bytes.
- Parameters:
message – The bus message to serialize.
- Returns:
UTF-8 encoded JSON bytes.
- deserialize(data: bytes) BusMessage | None[source]
Reconstruct a bus message from JSON bytes.
- Parameters:
data – The JSON bytes produced by serialize().
- Returns:
The reconstructed BusMessage, or None if deserialization fails.