nlohmann::basic_json::object¶
static basic_json object(initializer_list_t init = {});
Creates a JSON object value from a given initializer list. The initializer lists elements must be pairs, and their first elements must be strings. If the initializer list is empty, the empty object {} is created.
Parameters¶
init(in)- initializer list with JSON values to create an object from (optional)
Return value¶
JSON object value
Exception safety¶
Strong guarantee: if an exception is thrown, there are no changes in the JSON value.
Exceptions¶
Throws type_error.301 if init is not a list of pairs whose first elements are strings. In this case, no object can be created. When such a value is passed to basic_json(initializer_list_t, bool, value_t), an array would have been created from the passed initializer list init. See the example below.
Complexity¶
Linear in the size of init.
Notes¶
This function is only added for symmetry reasons. In contrast to the related function array(initializer_list_t), there are no cases that can only be expressed by this function. That is, any initializer list init can also be passed to the initializer list constructor basic_json(initializer_list_t, bool, value_t).
Examples¶
Example
The following code shows an example for the object function.
#include <iostream>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main()
{
// create JSON objects
json j_no_init_list = json::object();
json j_empty_init_list = json::object({});
json j_list_of_pairs = json::object({ {"one", 1}, {"two", 2} });
// serialize the JSON objects
std::cout << j_no_init_list << '\n';
std::cout << j_empty_init_list << '\n';
std::cout << j_list_of_pairs << '\n';
// example for an exception
try
{
// can only create an object from a list of pairs
json j_invalid_object = json::object({{ "one", 1, 2 }});
}
catch (const json::type_error& e)
{
std::cout << e.what() << '\n';
}
}
Output:
{}
{}
{"one":1,"two":2}
[json.exception.type_error.301] cannot create object from initializer list
See also¶
basic_json(initializer_list_t)- create a JSON value from an initializer listarray- create a JSON array value from an initializer list
Version history¶
- Added in version 1.0.0.