Skip to content

# to_string(basic_json)

    template <typename BasicJsonType>
    std::string to_string(const BasicJsonType& j);

This function implements a user-defined to_string for JSON objects.

## Template parameters

`BasicJsonType`
  a specialization of `basic_json`

## Return value

string containing the serialization of the JSON value

## Exception safety

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

## Exceptions

Throws `type_error.316` if a string stored inside the JSON value is not UTF-8 encoded

## Complexity

Linear.

## Possible implementation

    template <typename BasicJsonType>
    std::string to_string(const BasicJsonType& j)
    {
        return j.dump();
    }

## Examples

Example

The following code shows how the library's `to_string()` function integrates with others, allowing argument-dependent lookup.

    #include <iostream>
    #include <nlohmann/json.hpp>

    using json = nlohmann::json;
    using std::to_string;

    int main()
    {
        // create values
        json j = {{"one", 1}, {"two", 2}};
        int i = 42;

        // use ADL to select best to_string function
        auto j_str = to_string(j);  // calling nlohmann::to_string
        auto i_str = to_string(i);  // calling std::to_string

        // serialize without indentation
        std::cout << j_str << "\n\n"
                  << i_str << std::endl;
    }

Output:

    {"one":1,"two":2}

    42

## See also

- dump

## Version history

Added in version 3.7.0.

Last update: May 1, 2022
Back to top