diff --git a/src/motion/marshal.py b/src/motion/marshal.py index 5c2fbce..b818837 100644 --- a/src/motion/marshal.py +++ b/src/motion/marshal.py @@ -13,18 +13,21 @@ def __init__(self, error, payload): class JSONMarshal(object): """Simple JSON Marshal""" + JSONEncoder = None + JSONDecoder = None + def to_bytes(self, event_name, payload): try: return json.dumps({ 'event_name': event_name, 'payload': payload - }) + }, cls=self.JSONEncoder) except ValueError: raise MarshalFailure("Could not convert payload to JSON", payload) def to_native(self, payload): try: - native = json.loads(payload) + native = json.loads(payload, cls=self.JSONDecoder) except ValueError: raise MarshalFailure("Could not load valid JSON from payload", payload) return native['event_name'], native['payload']