Example #1
0
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)
Example #2
0
 def __init__(self):
     self._json_object_serializer = JsonObjectSerializer()
     self._json_object_deserializer = JsonObjectDeserializer()