This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.3.

# JSON Utilities - `kombu.utils.json`

JSON Serialization Utilities.

class kombu.utils.json.JSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)

  Kombu custom json encoder.

  default(o)

    Implement this method in a subclass such that it returns a serializable object for `o`, or calls the base implementation (to raise a `TypeError`).

    For example, to support arbitrary iterators, you could implement default like this:

        def default(self, o):
            try:
                iterable = iter(o)
            except TypeError:
                pass
            else:
                return list(iterable)
            # Let the base class default method raise the TypeError
            return super().default(o)

kombu.utils.json.dumps(s, _dumps=<function dumps>, cls=<class 'kombu.utils.json.JSONEncoder'>, default_kwargs=None, **kwargs)

  Serialize object to json string.

kombu.utils.json.loads(s, _loads=<function loads>, decode_bytes=True, object_hook=<function object_hook>)

  Deserialize json from string.

kombu.utils.json.object_hook(o: dict)

  Hook function to perform custom deserialization.

kombu.utils.json.register_type(t: type[~kombu.utils.json.T], marker: str | None, encoder: ~typing.Callable[[~kombu.utils.json.T], ~kombu.utils.json.EncodedT], decoder: ~typing.Callable[[~kombu.utils.json.EncodedT], ~kombu.utils.json.T] = <function <lambda>>)

  Add support for serializing/deserializing native python type.

  If marker is None, the encoding is a pure transformation and the result is not placed in an envelope, so decoder is unnecessary. Decoding must instead be handled outside this library.