diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-01-26 18:56:19 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-01-26 18:56:19 +0100 |
commit | a08368b93b263aa52df3eeb4c90669ae6da7cd6e (patch) | |
tree | b471e7b57b2372d3409890727f26aba8671a5e53 /src/utils-json.h | |
parent | 7fe0c07848ae028f10e32bca777d05fbc404b152 (diff) |
Make utils-json handle dot keys
Change-Id: I8b9b91accc0e30726e3be7f287b8312b0d7f3d02
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/utils-json.h')
-rw-r--r-- | src/utils-json.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/utils-json.h b/src/utils-json.h index 5f1151c..de98e10 100644 --- a/src/utils-json.h +++ b/src/utils-json.h @@ -42,6 +42,7 @@ extern int j_integer(struct json_object *obj, int defval); * Read the value of the entry of key in object if exist and of the good type and return true. * Returns false if the key does not exist or if the type is not correct. */ +extern int j_has(struct json_object *obj, const char *key); extern int j_read_object_at(struct json_object *obj, const char *key, struct json_object **value); extern int j_read_string_at(struct json_object *obj, const char *key, const char **value); extern int j_read_boolean_at(struct json_object *obj, const char *key, int *value); @@ -65,3 +66,29 @@ extern int j_add_integer(struct json_object *obj, const char *key, int val); 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); + + |