X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=jshn.c;h=f71e6e685ddcd43117238b40714b4f7140f03cb7;hb=8cee1e552ab281dbbf0f862e4e4e327028c0399b;hp=781861deda534602b560f138151534da55b91e31;hpb=49e6e062b8effe281a85de167c16c5f039b74442;p=project%2Flibubox.git diff --git a/jshn.c b/jshn.c index 781861d..f71e6e6 100644 --- a/jshn.c +++ b/jshn.c @@ -112,6 +112,9 @@ static int add_json_element(const char *key, json_object *obj) case json_type_int: type = "int"; break; + case json_type_double: + type = "double"; + break; default: return -1; } @@ -141,6 +144,9 @@ static int add_json_element(const char *key, json_object *obj) case json_type_int: fprintf(stdout, "' %d;\n", json_object_get_int(obj)); break; + case json_type_double: + fprintf(stdout, "' %lf;\n", json_object_get_double(obj)); + break; default: return -1; } @@ -212,6 +218,8 @@ static void jshn_add_object_var(json_object *obj, bool array, const char *prefix new = json_object_new_string(var); } else if (!strcmp(type, "int")) { new = json_object_new_int(atoi(var)); + } else if (!strcmp(type, "double")) { + new = json_object_new_double(strtod(var, NULL)); } else if (!strcmp(type, "boolean")) { new = json_object_new_boolean(!!atoi(var)); } else {