ARDUINOJSON_USE_LONG_LONG 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 1 on 32-bit and 64-bit processors, 0 otherwise. In other words, ArduinoJson uses long long when it doesn’t increases memory usage. Setting it to 0 doesn’t reduce memory consumption but can slightly reduce code size.

Only 0 and 1 are valid. Any other value (like false or true) will produce a compilation error.

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_USE_LONG_LONG in each compilation unit; otherwise, the executable will be much bigger because it will contain two variants of the library.


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

#include <ArduinoJson.h>

See also