probably worth an option for this

This commit is contained in:
Remi Collet
2012-12-13 11:46:04 +01:00
parent 8c847968c7
commit 32d149c8f6
3 changed files with 7 additions and 2 deletions

View File

@@ -562,7 +562,7 @@ static int json_object_double_to_json_string(struct json_object* jso,
} else { } else {
p = strchr(buf, '.'); p = strchr(buf, '.');
} }
if (p) { if (p && (flags & JSON_C_TO_STRING_NOZERO)) {
/* last useful digit, always keep 1 zero */ /* last useful digit, always keep 1 zero */
p++; p++;
for (q=p ; *q ; q++) { for (q=p ; *q ; q++) {

View File

@@ -42,6 +42,10 @@ extern "C" {
* for an example of the format. * for an example of the format.
*/ */
#define JSON_C_TO_STRING_PRETTY (1<<1) #define JSON_C_TO_STRING_PRETTY (1<<1)
/**
* A flag to drop trailing zero for float values
*/
#define JSON_C_TO_STRING_NOZERO (1<<2)
#undef FALSE #undef FALSE
#define FALSE ((json_bool)0) #define FALSE ((json_bool)0)

View File

@@ -23,8 +23,9 @@ int main(int argc, char **argv)
MC_SET_DEBUG(1); MC_SET_DEBUG(1);
new_obj = json_tokener_parse("[1.2,3.4,123456.78,5.0]"); new_obj = json_tokener_parse("[1.2,3.4,123456.78,5.0,2.3e10]");
printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj)); printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
printf("new_obj.to_string()=%s\n", json_object_to_json_string_ext(new_obj,JSON_C_TO_STRING_NOZERO));
json_object_put(new_obj); json_object_put(new_obj);
} }