From 9e7f11a8478d0cf61945ba00db03048d47730ba4 Mon Sep 17 00:00:00 2001 From: Jason Choy Date: Sun, 9 Jun 2013 15:14:47 +0100 Subject: [PATCH] Implemented a decode option to only decode numbers to reals and never integers --- src/jansson.h | 1 + src/load.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/jansson.h b/src/jansson.h index 77cc5ba..3661e33 100644 --- a/src/jansson.h +++ b/src/jansson.h @@ -239,6 +239,7 @@ json_t *json_deep_copy(json_t *value); #define JSON_REJECT_DUPLICATES 0x1 #define JSON_DISABLE_EOF_CHECK 0x2 #define JSON_DECODE_ANY 0x4 +#define JSON_DECODE_NO_INT 0x8 typedef size_t (*json_load_callback_t)(void *buffer, size_t buflen, void *data); diff --git a/src/load.c b/src/load.c index 1eb3be4..467d067 100644 --- a/src/load.c +++ b/src/load.c @@ -783,7 +783,11 @@ static json_t *parse_value(lex_t *lex, size_t flags, json_error_t *error) } case TOKEN_INTEGER: { - json = json_integer(lex->value.integer); + if (flags & JSON_DECODE_NO_INT) { + json = json_real(lex->value.integer); + } else { + json = json_integer(lex->value.integer); + } break; }