aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2016-03-02 17:44:16 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2016-03-02 17:47:58 +0100
commit740c64f92c24da30a8636b836a21e91fcba70463 (patch)
treecc04725d3bde7c107ef745c7c63e24c75e723d34
parentfa9948dbf66d6767a987485c24afdd15f1bab0ba (diff)
utils-json: adds function for new array/object
Change-Id: I14168684cdfcae7ec0689eb45ab09aff82d66d22 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/utils-json.c20
-rw-r--r--src/utils-json.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/utils-json.c b/src/utils-json.c
index 3af2a4c..eb1f90b 100644
--- a/src/utils-json.c
+++ b/src/utils-json.c
@@ -117,3 +117,23 @@ int j_add_integer(struct json_object *obj, const char *key, int val)
return str ? j_add(obj, key, str) : (errno = ENOMEM, 0);
}
+struct json_object *j_add_new_array(struct json_object *obj, const char *key)
+{
+ struct json_object *result = json_object_new_array();
+ if (result != NULL && !j_add(obj, key, result)) {
+ json_object_put(result);
+ result = NULL;
+ }
+ return result;
+}
+
+struct json_object *j_add_new_object(struct json_object *obj, const char *key)
+{
+ struct json_object *result = json_object_new_object();
+ if (result != NULL && !j_add(obj, key, result)) {
+ json_object_put(result);
+ result = NULL;
+ }
+ return result;
+}
+
diff --git a/src/utils-json.h b/src/utils-json.h
index 4b86fa9..9d495f8 100644
--- a/src/utils-json.h
+++ b/src/utils-json.h
@@ -61,4 +61,6 @@ extern int j_add(struct json_object *obj, const char *key, struct json_object *v
extern int j_add_string(struct json_object *obj, const char *key, const char *val);
extern int j_add_boolean(struct json_object *obj, const char *key, int val);
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);