Skip to content

# 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

## 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 example below.

## Exception safety

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

## 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 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(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 (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

## Version history

- Added in version 1.0.0.