diff --git a/include/re_json.h b/include/re_json.h
new file mode 100644
index 0000000..0cc43db
--- /dev/null
+++ b/include/re_json.h
@@ -0,0 +1,50 @@
+/**
+ * @file re_json.h  Interface to JavaScript Object Notation (JSON) -- RFC 7159
+ *
+ * Copyright (C) 2010 - 2015 Creytiv.com
+ */
+
+enum json_typ {
+	JSON_STRING,
+	JSON_INT,
+	JSON_DOUBLE,
+	JSON_BOOL,
+	JSON_NULL,
+};
+
+struct json_value {
+	union {
+		char *str;
+		int64_t integer;
+		double dbl;
+		bool boolean;
+	} v;
+	enum json_typ type;
+};
+
+struct json_handlers;
+
+typedef int (json_object_entry_h)(const char *name,
+				  const struct json_value *value, void *arg);
+typedef int (json_array_entry_h)(unsigned idx,
+				 const struct json_value *value, void *arg);
+typedef int (json_object_h)(const char *name, unsigned idx,
+			    struct json_handlers *h);
+typedef int (json_array_h)(const char *name, unsigned idx,
+			   struct json_handlers *h);
+
+struct json_handlers {
+	json_object_h *oh;
+	json_array_h *ah;
+	json_object_entry_h *oeh;
+	json_array_entry_h *aeh;
+	void *arg;
+};
+
+int json_decode(const char *str, size_t len, unsigned maxdepth,
+		json_object_h *oh, json_array_h *ah,
+		json_object_entry_h *oeh, json_array_entry_h *aeh, void *arg);
+
+int json_decode_odict(struct odict **op, uint32_t hash_size, const char *str,
+		      size_t len, unsigned maxdepth);
+int json_encode_odict(struct re_printf *pf, const struct odict *o);
