class JsonSerializer(object): SERIALIZED_ATTR = "__serialized__" def __init__(self): self._json_object_serializer = JsonObjectSerializer() self._json_object_deserializer = JsonObjectDeserializer() def serialize(self, object, camel_case = True, skip_non_serializable_items = False, deserializable = False): if deserializable: camel_case = False check_circular = False else: check_circular = True object = self._json_object_serializer.serialize(object, deserializable, camel_case, skip_non_serializable_items) json_data = json.dumps(object, default = lambda obj: self._serialize_object(obj, camel_case, skip_non_serializable_items, deserializable), sort_keys = False, indent = 4, check_circular = check_circular) return json_data def _serialize_object(self, object, camel_case, skip_non_serializable_items, deserializable): return self._json_object_serializer.serialize(object, deserializable, camel_case, skip_non_serializable_items) def deserialize(self, data): object = json.loads(data, object_hook = lambda dict: self._unwrap(dict)) return object def _unwrap(self, dict): return self._json_object_deserializer.deserialize(dict)
def __init__(self): self._json_object_serializer = JsonObjectSerializer() self._json_object_deserializer = JsonObjectDeserializer()