JsonArray::add() appends a value to the array pointed by the JsonArray.

If the JsonArray is null, this function does nothing.


bool add(bool value) const;

bool add(float value) const;
bool add(double value) const;

bool add(signed char value) const;
bool add(signed long value) const;
bool add(signed int value) const;
bool add(signed short value) const;
bool add(unsigned char value) const;
bool add(unsigned long value) const;
bool add(unsigned int value) const;
bool add(unsigned short value) const;

bool add(const char *value) const;
bool add(char *value) const;
bool add(const __FlashStringHelper *value) const;

bool add(const String &value) const;
bool add(const std::string &value) const;

bool add(JsonArray array) const;
bool add(JsonObject object) const;
bool add(JsonVariant variant) const;


value: the value to add to the array.

If you pass a JsonArray, a JsonObject, or a JsonVariant, JsonArray::add() makes a complete clone of the argument. In other words, the value is stored by copy, not by reference.

As usual, ArduinoJson makes a copy of a string in the JsonDocument, except if it’s a const char*.

Return value

JsonArray::add() return a bool that tells whether the operation was successful or not:

  • true if the value was successfully added.
  • false if there was not enough memory in the JsonDocument.


ArduinoJson makes a copy of the string when you call this function with one of the following types:

This duplication consumes some space in the JsonDocument; don’t forget to increase its capacity accordingly.


StaticJsonDocument<200> doc;
JsonArray array =<JsonArray>();
serializeJson(doc, Serial);

will write


See also