Description

Depending on the type of its argument, JsonDocument::remove() either:

  • removes the element at the specified index from the root array
  • removes the member with the specified key in the root object

In other words, JsonDocument::remove() behaves like JsonArray::remove() or JsonObject::remove().

JsonDocument::remove() does nothing if the root value doesn’t match the expected type. For example, if you call remove("key") on an array, the document won’t change.

Signature

void remove(size_t index) const;

void remove(const char* key) const;
void remove(const __FlashStringHelper* key) const;
void remove(const String& key) const;
void remove(const std::string& key) const;
void remove(std::string_view key) const;

Arguments

index: the zero-based position of the array element to remove.

key: the key of the object member to remove

Examples

With an array

JsonDocument doc;
doc.add("Ned");
doc.add("Maude");
doc.add("Rod");
doc.add("Todd");
doc.remove(1);  // removes "Maude"
serializeJson(doc, Serial);  // prints ["Ned","Rod","Todd"]

With an object

JsonDocument doc;
doc["name"] = "Homer";
doc["age"] = 38;
doc["weight"] = 239;
doc.remove("age");
serializeJson(doc, Serial);  // prints {"name":"Homer","weight":239}

See also

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