Determines the type used to store integer values in JsonVariant.

  • If ARDUINOJSON_USE_LONG_LONG == 0, then JsonVariant stores a long
  • If ARDUINOJSON_USE_LONG_LONG == 1, then JsonVariant stores a long long

The default is 0 when ARDUINO is defined, 1 otherwise. In other words, it’s long on embedded systems, but long long on computers.

To override the default value, you need to #define the value before including ArduinoJson.h, like this:

#define ARDUINOJSON_USE_LONG_LONG 1
#include <ArduinoJson.h>

Can’t use the Assistant

The ArduinoJson Assistant assumes that your program uses the default value for ARDUINOJSON_USE_LONG_LONG.

If you change from the default, the ArduinoJson Assistant will return incorrect values.

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.

It’s crucial that you use the same value of ARDUINOJSON_USE_LONG_LONG in each compilation unit; otherwise, the executable will contain a mix of both versions, and will inevitably crash.

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