JsonArray
Description
In ArduinoJson, an array is an ordered collection of values. A JsonArray
is a reference to an array. The array itself resides in a JsonDocument
.
Because the JsonArray
is just a reference, you need a JsonDocument
to create a array.
Constness
You’ll see that most member functions of JsonArray
are const
. These methods do not modify the instance, but they may modify the array pointed by the JsonArray
.
As we said, a JsonArray
is a reference; the const
-ness of the member functions refers to the reference object, not to the array.
ArduinoJson also supports a read-only reference type named JsonArrayConst
. It’s similar to JsonArray
, except it doesn’t allow modifying the array.
Computing the size
The macro JSON_ARRAY_SIZE(n)
returns the number of bytes required to store an array that contains n
elements. Use this macro to calculate the capacity of the JsonDocument
.
This value only includes the size of the data structures that represent the array; if you have nested objects or strings, you need to add their sizes as well. You can use the ArduinoJson Assistant to generate the complete expression.
Example
Create an array and serialize it
// compute the required size
const size_t CAPACITY = JSON_ARRAY_SIZE(3);
// allocate the memory for the document
StaticJsonDocument<CAPACITY> doc;
// create an empty array
JsonArray array = doc.to<JsonArray>();
// add some values
array.add("hello");
array.add(42);
array.add(3.14);
// serialize the array and send the result to Serial
serializeJson(doc, Serial);
Deserialize an array
// compute the required size
const size_t CAPACITY = JSON_ARRAY_SIZE(3);
// allocate the memory for the document
StaticJsonDocument<CAPACITY> doc;
// parse a JSON array
deserializeJson(doc, "[1,2,3]");
// extract the values
JsonArray array = doc.as<JsonArray>();
for(JsonVariant v : array) {
Serial.println(v.as<int>());
}
Member functions
add()
begin() / end()
clear()
createNestedArray()
createNestedObject()
isNull()
memoryUsage()
nesting()
operator[]
remove()
set()
size()