JsonArray::add()
Description
JsonArray::add()
appends a value to the array pointed by the JsonArray
.
If the JsonArray
is null/unbound, this function does nothing.
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); // stores a copy
bool add(std::string_view value); // 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 add 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
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 theJsonDocument
.
User-defined types
JsonArray::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);
}
Example
JsonDocument doc;
JsonArray array = doc.to<JsonArray>();
array.add("hello");
array.add(3.14156);
serializeJson(doc, Serial);
will write
["hello",3.14156]