// (1) void push_back(basic_json&& val); void push_back(const basic_json& val); // (2) void push_back(const typename object_t::value_type& val); // (3) void push_back(initializer_list_t init);
Appends the given element val
to the end of the JSON array. If the function is called on a JSON null value, an empty array is created before appending val
.
Inserts the given element val
to the JSON object. If the function is called on a JSON null value, an empty object is created before inserting val
.
This function allows using push_back
with an initializer list. In case
init
contains only two elements, andinit
is a string,init
is converted into an object element and added using push_back(const typename object_t::value_type&)
. Otherwise, init
is converted to a JSON value and added using push_back(basic_json&&)
.
val
(in) : the value to add to the JSON array/object
init
(in) : an initializer list
type_error.308
when called on a type other than JSON array or null; example: "cannot use push_back() with number"
type_error.308
when called on a type other than JSON object or null; example: "cannot use push_back() with number"
size()
)).init
.(3) This function is required to resolve an ambiguous overload error, because pairs like {"key", "value"}
can be both interpreted as object_t::value_type
or std::initializer_list<basic_json>
, see #235 for more information.
??? example “Example: (1) add element to array”
The example shows how `push_back()` and `+=` can be used to add elements to a JSON array. Note how the `null` value was silently converted to a JSON array. ```cpp --8<-- "examples/push_back.cpp" ``` Output: ```json --8<-- "examples/push_back.output" ```
??? example “Example: (2) add element to object”
The example shows how `push_back()` and `+=` can be used to add elements to a JSON object. Note how the `null` value was silently converted to a JSON object. ```cpp --8<-- "examples/push_back__object_t__value.cpp" ``` Output: ```json --8<-- "examples/push_back__object_t__value.output" ```
??? example “Example: (3) add to object from initializer list”
The example shows how initializer lists are treated as objects when possible. ```cpp --8<-- "examples/push_back__initializer_list.cpp" ``` Output: ```json --8<-- "examples/push_back__initializer_list.output" ```