Description

Creates a JsonObject as a child of the current object.

Signature

JsonObject createNestedObject(const char* key) const;
JsonObject createNestedObject(char* key) const; // see Remarks
JsonObject createNestedObject(const String& key) const; // see Remarks
JsonObject createNestedObject(const std::string& key) const; // see Remarks
JsonObject createNestedObject(const __FlashStringHelper* key) const; // see Remarks

Arguments

key: the key of the object in the object, can be a const char* or a const String&

Remarks

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

  • char*
  • String (or std::string)
  • const __FlashStringHelper * (i.e. Flash string)

This duplication causes the JsonDocument to grow; so don’t forget to increase its capacity accordingly.

Return value

A reference to the new JsonObject. You can check JsonObject::isNull() to verify that the allocation succeeded.

Example

StaticJsonDocument<256> doc;
JsonObject root = doc.to<JsonObject>();
root["city"] = "Paris";
JsonObject weather = root.createNestedObject("weather");
weather["temp"] = 14.2;
weather["cond"] = "cloudy";
root.prettyPrintTo(Serial);

will print

{
  "city": "Paris",
  "weather": {
    "temp": 14.20,
    "cond": "cloudy"
  }
}

See also