Serialization FormatsΒΆ

For typed_data_converter, the DeterministicJsonSerializer uses a DictTypedDataConverter as default to inject class information into serialized data. It packages the serialized data and the class identification tag into a dict with the two fields _cls and _data. This format can be changed by passing other converter objects that implement the TypedDataConverter interface for the typed_data_converter parameter.

A second built-in format is available as PairTypedDataConverter which produces a two-element tuple containing the class identification tag and the serialized data:

# Example 3:
from parityos_serialization.serializer import DeterministicJsonSerializer
from parityos_serialization.utils.typed_data_converter import PairTypedDataConverter

serializer = DeterministicJsonSerializer(PairTypedDataConverter())
obj = {1, 2, 3}
dct = serializer.serialize(obj)
obj2 = serializer.deserialize(dct)
assert obj == obj2
print(dct)
# ('set', [1, 2, 3])