+extern struct json_object *j_add_new_array(struct json_object *obj, const char *key);
+extern struct json_object *j_add_new_object(struct json_object *obj, const char *key);
+
+/*
+ * functions below interpret the key 'mkey' as a dot separated
+ * path specification.
+ */
+extern int j_enter_m(struct json_object **obj, const char **mkey, int create);
+
+extern int j_has_m(struct json_object *obj, const char *mkey);
+
+extern int j_read_object_at_m(struct json_object *obj, const char *mkey, struct json_object **value);
+extern int j_read_string_at_m(struct json_object *obj, const char *mkey, const char **value);
+extern int j_read_boolean_at_m(struct json_object *obj, const char *mkey, int *value);
+extern int j_read_integer_at_m(struct json_object *obj, const char *mkey, int *value);
+
+extern const char *j_string_at_m(struct json_object *obj, const char *mkey, const char *defval);
+extern int j_boolean_at_m(struct json_object *obj, const char *mkey, int defval);
+extern int j_integer_at_m(struct json_object *obj, const char *mkey, int defval);
+
+extern int j_add_m(struct json_object *obj, const char *mkey, struct json_object *val);
+extern int j_add_string_m(struct json_object *obj, const char *mkey, const char *val);
+extern int j_add_many_strings_m(struct json_object *obj, ...);
+extern int j_add_boolean_m(struct json_object *obj, const char *mkey, int val);
+extern int j_add_integer_m(struct json_object *obj, const char *mkey, int val);
+extern struct json_object *j_add_new_array_m(struct json_object *obj, const char *mkey);
+extern struct json_object *j_add_new_object_m(struct json_object *obj, const char *mkey);
+