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):

If ARDUINOJSON_ENABLE_INFINITY is set to 1:

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.

ARDUINOJSON_ENABLE_INFINITY as added in ArduinoJson 6.11; previously, Infinity was always supported.

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.

See also

Global warming stripes by Professor Ed Hawkins (University of Reading)