add an object to an object This function allows to use push_back
with an initializer list. In case
- the current value is an object,
- the initializer list init contains only two elements, and
- the first element of init 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&&).
- Parameters
-
[in] | init | an initializer list |
- Complexity
- Linear in the size of the initializer list init.
- Note
- 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 https://github.com/nlohmann/json/issues/235 for more information.
- Example
- The example shows how initializer lists are treated as objects when possible.
2 #include <nlohmann/json.hpp>
9 json object = {{
"one", 1}, {
"two", 2}};
13 std::cout <<
object <<
'\n';
14 std::cout <<
null <<
'\n';
17 object.push_back({
"three", 3});
18 object += {
"four", 4};
19 null.push_back({
"five", 5});
22 std::cout <<
object <<
'\n';
23 std::cout <<
null <<
'\n';
Output (play with this example online): {"one":1,"two":2}
null
{"four":4,"one":1,"three":3,"two":2}
[["five",5]]
The example code above can be translated withg++ -std=c++11 -Isingle_include doc/examples/push_back__initializer_list.cpp -o push_back__initializer_list
Definition at line 19576 of file json.hpp.