@@ -16,6 +16,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "debug.h"
|
||||
#include "printbuf.h"
|
||||
@@ -568,8 +569,19 @@ static int json_object_double_to_json_string(struct json_object* jso,
|
||||
{
|
||||
char buf[128], *p, *q;
|
||||
int size;
|
||||
|
||||
/* Although JSON RFC does not support
|
||||
NaN or Infinity as numeric values
|
||||
ECMA 262 section 9.8.1 defines
|
||||
how to handle these cases as strings */
|
||||
if(isnan(jso->o.c_double))
|
||||
size = snprintf(buf, 128, "NaN");
|
||||
else if(isinf(jso->o.c_double) == 1)
|
||||
size = snprintf(buf, 128, "Infinity");
|
||||
else if(isinf(jso->o.c_double) == -1)
|
||||
size = snprintf(buf, 128, "-Infinity");
|
||||
else
|
||||
size = snprintf(buf, 128, "%f", jso->o.c_double);
|
||||
|
||||
p = strchr(buf, ',');
|
||||
if (p) {
|
||||
*p = '.';
|
||||
|
||||
Reference in New Issue
Block a user