blobmsg_json: support json_type_null in blobmsg_add_json_element()
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 9 Feb 2016 21:51:41 +0000 (22:51 +0100)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 9 Feb 2016 22:30:32 +0000 (23:30 +0100)
We already serialize BLOBMSG_TYPE_UNSPEC as "null" so represent JSON null
values as blob attribute type unspec with payload size zero.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
blobmsg_json.c

index ffde23d..2d1d80d 100644 (file)
@@ -49,9 +49,6 @@ bool blobmsg_add_json_element(struct blob_buf *b, const char *name, json_object
        bool ret = true;
        void *c;
 
-       if (!obj)
-               return false;
-
        switch (json_object_get_type(obj)) {
        case json_type_object:
                c = blobmsg_open_table(b, name);
@@ -72,6 +69,9 @@ bool blobmsg_add_json_element(struct blob_buf *b, const char *name, json_object
        case json_type_int:
                blobmsg_add_u32(b, name, json_object_get_int(obj));
                break;
+       case json_type_null:
+               blobmsg_add_field(b, BLOBMSG_TYPE_UNSPEC, name, NULL, 0);
+               break;
        default:
                return false;
        }