Description

When the JsonVariant points to an array, JsonVariant::add() appends a value to the array. Otherwise, this function does nothing.

In other words, JsonVariant::add() reproduces JsonArray::add().

Signatures

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)[N]) const; // stores a pointer bool add(const char *value) const; // stores a copy bool add(const __FlashStringHelper *value) const; // stores a copy bool add(const String &value) const; // stores a copy bool add(const std::string &value) const; // stores a copy bool add(const Printable& value) const; // stores a copy bool add(std::string_view value) const; // stores a copy bool add(JsonArray array) const; // stores a deep copy bool add(JsonObject object) const; // stores a deep copy bool add(JsonVariant variant) const; // stores a deep copy bool add(const JsonDocument& doc) const; // stores a deep copy bool add(TEnum value) const; // alias of add(int) bool add(T value) const; // calls user-defined function JsonArray add<JsonArray>() const; // adds a new empty array JsonObject add<JsonObject>() const; // adds a new empty object JsonVariant add<JsonVariant>() const; // adds a new null variant 

Arguments

value: the value to append to the array.

All values are stored by copy, except string literals which are stored by address.

The string copy policy has changed in ArduinoJson 7.3.

Return value

JsonVariant::add() returns 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.

User-defined types

JsonVariant::add() supports user-defined types by calling convertToJson(). For example, to support tm, you must define:

bool convertToJson(const tm& src, JsonVariant dst) { char buf[32]; strftime(buf, sizeof(buf), "%FT%TZ", &src); return dst.set(buf); } 

See also

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