Description

JsonDocument::set() replaces the root value of the JsonDocument.

Signatures

bool set(bool value) const;

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

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

bool set(const char (&value)[N]) const;            // stores a pointer
bool set(const char *value) const;                 // stores a copy
bool set(const __FlashStringHelper *value) const;  // stores a copy

bool set(const String &value) const;       // stores a copy
bool set(const std::string &value) const;  // stores a copy
bool set(const Printable& value) const;    // stores a copy
bool set(std::string_view value) const;    // stores a copy

bool set(JsonArray array) const;         // stores a deep copy
bool set(JsonObject object) const;       // stores a deep copy
bool set(JsonVariant variant) const;     // stores a deep copy
bool set(const JsonVariant& doc) const;  // stores a deep copy

bool set(TEnum value) const;  // alias of set(int)
bool set(T value) const;      // calls user-defined function

Arguments

value: the new value of the document, it can be any type supported by ArduinoJson or a user-defined type if you define custom converters.

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

JsonDocument::set() returns a bool that tells whether the operation was successful or not:

  • true if the value operation was successful.
  • false if there was not enough room in the JsonDocument.

User-defined types

JsonDocument::set() 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;
doc.set("hello world")
serializeJson(doc, Serial);

The above program produces the following output:

"hello world"

See also

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