diff --git a/API-Reference.md b/API-Reference.md index 675ee9e..b798b80 100644 --- a/API-Reference.md +++ b/API-Reference.md @@ -121,7 +121,7 @@ unsigned short get (size_t index) const; ##### Arguments -`index`: the index of the the value in the array. +`index`: the index of the value in the array. `T`: the type of the value @@ -669,6 +669,108 @@ JsonObject& object2 = jsonBuffer.parseObject(json); ``` +### JsonObject::createNestedArray() + +##### Description +Creates a `JsonArray` as a child of the current object. + +##### Signature + +```c++ +JsonArray& createNestedArray(const char* key) const; +JsonArray& createNestedArray(const String& key) const; // <- duplicates key +``` + +##### Arguments + +`key`: the key of the array in the object, can be a `const char*` or a `const String&` + +##### Remarks + +When you add a value using a `String` for key, a copy of the string is made, causing the `JsonBuffer` to grow. +The memory allocated for the copy will only be freed when the whole `JsonBuffer` is discarded. +To avoid this behavior, use a `const char*` key instead. + +##### Return value + +A reference to the new `JsonArray` + +##### Example + +```c++ +StaticJsonBuffer<256> jsonBuffer; +JsonObject& root = jsonBuffer.createObject(); +root["status"] = "on"; +JsonArray& levels = root.createNestedArray("levels"); +levels.add(10); +levels.add(30); +root.prettyPrintTo(Serial); +``` + +will print + +```json +{ + "status": "on", + "levels": [ + 10, + 20 + ] +} +``` + + +### JsonObject::createNestedObject() + +##### Description +Creates a `JsonObject` as a child of the current object. + +##### Signature + +```c++ +JsonObject& createNestedObject(const char* key) const; +JsonObject& createNestedObject(const String& key) const; // <- duplicates key +``` + +##### Arguments + +`key`: the key of the object in the object, can be a `const char*` or a `const String&` + +##### Remarks + +When you add a value using a `String` for key, a copy of the string is made, causing the `JsonBuffer` to grow. +The memory allocated for the copy will only be freed when the whole `JsonBuffer` is discarded. +To avoid this behavior, use a `const char*` key instead. + +##### Return value + +A reference to the new `JsonObject` + +##### Example + +```c++ +StaticJsonBuffer<256> jsonBuffer; +JsonObject& root = jsonBuffer.createObject(); +root["city"] = "Paris"; +JsonObject& weather = root.createNestedObject("weather"); +weather["temp"] = 14.2; +weather["cond"] = "cloudy"; +root.prettyPrintTo(Serial); +``` + +will print + +```json +{ + "city": "Paris", + "weather": { + "temp": 14.20, + "cond": "cloudy" + } +} +``` + + ### JsonObject::get() ##### Description @@ -697,7 +799,7 @@ unsigned short get (JsonObjectKey key) const; ##### Arguments -`key`: the key of the the value in the object, can be a `const char*` or a `const String&` +`key`: the key of the value in the object, can be a `const char*` or a `const String&` `T`: the type of the value