ARDUINOJSON_ENABLE_NAN
Description
The macro ARDUINOJSON_ENABLE_NAN
activates the support of NaN
in JSON input and output documents.
If ARDUINOJSON_ENABLE_NAN
is set to 0
(the default):
deserializeJson()
returns InvalidInput when the input containsNaN
,serializeJson()
producesnull
when theJsonDocument
containsNaN
.
If ARDUINOJSON_ENABLE_NAN
is set to 1
:
deserializeJson()
storesNaN
in theJsonDocument
when the input containsNaN
,serializeJson()
producesNaN
when theJsonDocument
containsNaN
.
The default value (ARDUINOJSON_ENABLE_NAN == 0
) is more portable, because it matches the behavior of most JSON libraries. Indeed, the JSON specification doesn’t allow NaN
, so very few JSON libraries support it.
Only 0
and 1
are valid. Any other value (like false
or true
) will produce a compilation error.
ARDUINOJSON_ENABLE_NAN
as added in ArduinoJson 6.11; previously, NaN
was always supported.
How to force the value?
If you need to support NaN
in your program, define ARDUINOJSON_ENABLE_NAN
to 1
before including ArduinoJson.h
:
#define ARDUINOJSON_ENABLE_NAN 1
#include <ArduinoJson.h>
Several
.ino
or.cpp
files?Be careful if several compilation units compose your program, i.e., if your project contains several
.ino
or.cpp
files.You should define the same value of
ARDUINOJSON_ENABLE_NAN
in each compilation unit; otherwise, the executable will be much bigger because it will contain two variants of the library.