diff --git a/plio/io/io_json.py b/plio/io/io_json.py
index a463e6cf7006c4d71b0ca93e0597e9f8534d6591..161a68e4c0c102f3965753074bd98394b98390d3 100644
--- a/plio/io/io_json.py
+++ b/plio/io/io_json.py
@@ -1,6 +1,15 @@
 import json
+import numpy as np
 
 
+class NumpyEncoder(json.JSONEncoder):
+    def default(self, obj):
+        if isinstance(obj, np.ndarray):
+            return obj.tolist()
+        elif isinstance(obj, datetime.date):
+            return obj.isoformat()
+        return json.JSONEncoder.default(self, obj)
+
 def read_json(inputfile):
     """
     Read the input json file into a python dictionary.