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.

History

ArduinoJson 6.11.0 added this option, as well as ARDUINOJSON_ENABLE_NAN. Previously, Infinity was always supported, as if ARDUINOJSON_ENABLE_INFINITY was 1.

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