From 1c08e80313fd487112c48346889cc57badeef751 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sun, 7 Jan 2018 15:46:31 +0100 Subject: jshn: properly support JSON "null" type Instead of abort parsing, properly deal with "null" values by implementing support for reading and formatting such values. Signed-off-by: Jo-Philipp Wich --- jshn.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'jshn.c') diff --git a/jshn.c b/jshn.c index 79136dd..3188af5 100644 --- a/jshn.c +++ b/jshn.c @@ -105,9 +105,6 @@ static int add_json_element(const char *key, json_object *obj) { char *type; - if (!obj) - return -1; - switch (json_object_get_type(obj)) { case json_type_object: type = "object"; @@ -127,6 +124,9 @@ static int add_json_element(const char *key, json_object *obj) case json_type_double: type = "double"; break; + case json_type_null: + type = "null"; + break; default: return -1; } @@ -159,6 +159,9 @@ static int add_json_element(const char *key, json_object *obj) case json_type_double: fprintf(stdout, "' %lf;\n", json_object_get_double(obj)); break; + case json_type_null: + fprintf(stdout, "';\n"); + break; default: return -1; } @@ -240,6 +243,8 @@ static void jshn_add_object_var(json_object *obj, bool array, const char *prefix new = json_object_new_double(strtod(var, NULL)); } else if (!strcmp(type, "boolean")) { new = json_object_new_boolean(!!atoi(var)); + } else if (!strcmp(type, "null")) { + new = NULL; } else { return; } -- cgit v1.2.3