ARDUINOJSON_ENABLE_INFINITY
Description
The macro ARDUINOJSON_ENABLE_INFINITY
activates the support of Infinity
in JSON input and output documents.
If ARDUINOJSON_ENABLE_INFINITY
is set to 0
(the default):
deserializeJson()
returns InvalidInput when the input containsInfinity
,serializeJson()
producesnull
when theJsonDocument
containsInfinity
.
If ARDUINOJSON_ENABLE_INFINITY
is set to 1
:
deserializeJson()
storesInfinity
in theJsonDocument
when the input containsInfinity
,serializeJson()
producesInfinity
when theJsonDocument
containsInfinity
.
The default value (ARDUINOJSON_ENABLE_INFINITY == 0
) is more portable, because it matches the behavior of most JSON libraries. Indeed, the JSON specification doesn’t allow Infinity
, 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.
How to force the value?
If you need to support Infinity
in your program, define ARDUINOJSON_ENABLE_INFINITY
to 1
before including ArduinoJson.h
:
#define ARDUINOJSON_ENABLE_INFINITY 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_INFINITY
in each compilation unit; otherwise, the executable will be much bigger because it will contain two variants of the library.