JSON for Modern C++  2.1.1

◆ object()

template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer>
static basic_json nlohmann::basic_json::object ( std::initializer_list< basic_json init = std::initializer_list<basic_json>())
inlinestatic

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.

Note
This function is only added for symmetry reasons. In contrast to the related function array(std::initializer_list<basic_json>), there are no cases which can only be expressed by this function. That is, any initializer list init can also be passed to the initializer list constructor basic_json(std::initializer_list<basic_json>, bool, value_t).
Parameters
[in]initinitializer list to create an object from (optional)
Returns
JSON object value
Exceptions
type_error.301if 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(std::initializer_list<basic_json>, bool, value_t), an array would have been created from the passed initializer list init. See example below.
Complexity
Linear in the size of init.
Example
The following code shows an example for the object function.
1 #include "json.hpp"
2 
3 using json = nlohmann::json;
4 
5 int main()
6 {
7  // create JSON objects
8  json j_no_init_list = json::object();
9  json j_empty_init_list = json::object({});
10  json j_list_of_pairs = json::object({ {"one", 1}, {"two", 2} });
11 
12  // serialize the JSON objects
13  std::cout << j_no_init_list << '\n';
14  std::cout << j_empty_init_list << '\n';
15  std::cout << j_list_of_pairs << '\n';
16 
17  // example for an exception
18  try
19  {
20  // can only create an object from a list of pairs
21  json j_invalid_object = json::object({{ "one", 1, 2 }});
22  }
23  catch (json::type_error& e)
24  {
25  std::cout << e.what() << '\n';
26  }
27 }
static basic_json object(std::initializer_list< basic_json > init=std::initializer_list< basic_json >())
explicitly create an object from an initializer list
Definition: json.hpp:2476
basic_json<> json
default JSON class
Definition: json.hpp:13933
detail::type_error type_error
exception indicating executing a member function with a wrong type
Definition: json.hpp:1322
Output (play with this example online):
{}
{}
{"one":1,"two":2}
[json.exception.type_error.301] cannot create object from initializer list
The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/object.cpp -o object 
See also
basic_json(std::initializer_list<basic_json>, bool, value_t) – create a JSON value from an initializer list
array(std::initializer_list<basic_json>) – create a JSON array value from an initializer list
Since
version 1.0.0

Definition at line 2476 of file json.hpp.