JsonObject::createNestedObject() appends a new object to the object pointed by the JsonObject.

If the JsonObject is null/unbound, this function does nothing.


JsonObject createNestedObject(char* key) const;
JsonObject createNestedObject(const char* key) const;  // ⚠️ stores key as a pointer
JsonObject createNestedObject(const __FlashStringHelper* key) const;

JsonObject createNestedObject(const String& key) const;
JsonObject createNestedObject(const std::string& key) const;
JsonObject createNestedObject(std::string_view key) const;


key: the key to associate with the new object.

All types are stored by copy, except const char* which is stored by pointer.

Return value

JsonObject::createNestedObject() returns a JsonObject that points to the newly created object.

JsonObject::createNestedObject() returns null if the memory allocation fails; in which case JsonObject::isNull(), returns true.


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

will print

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

See also