diff options
Diffstat (limited to 'xs_json.h')
| -rw-r--r-- | xs_json.h | 19 |
1 files changed, 1 insertions, 18 deletions
| @@ -91,24 +91,7 @@ d_char *_xs_json_dumps(d_char *s, char *data, int level, int indent) | |||
| 91 | break; | 91 | break; |
| 92 | 92 | ||
| 93 | case XSTYPE_NUMBER: | 93 | case XSTYPE_NUMBER: |
| 94 | { | 94 | s = xs_str_cat(s, xs_number_str(data)); |
| 95 | char tmp[32]; | ||
| 96 | snprintf(tmp, sizeof(tmp), "%.15f", xs_number_get(data)); | ||
| 97 | |||
| 98 | /* strip useless zeros */ | ||
| 99 | if (strchr(tmp, '.') != NULL) { | ||
| 100 | char *ptr; | ||
| 101 | |||
| 102 | for (ptr = tmp + strlen(tmp) - 1; *ptr == '0'; ptr--); | ||
| 103 | |||
| 104 | if (*ptr != '.') | ||
| 105 | ptr++; | ||
| 106 | |||
| 107 | *ptr = '\0'; | ||
| 108 | } | ||
| 109 | |||
| 110 | s = xs_str_cat(s, tmp); | ||
| 111 | } | ||
| 112 | break; | 95 | break; |
| 113 | 96 | ||
| 114 | case XSTYPE_LIST: | 97 | case XSTYPE_LIST: |