Files
json/api/adl_serializer/to_json.md
T
2026-10-12 07:35:31 +00:00

1.6 KiB

nlohmann::adl_serializer::to_json

template<typename BasicJsonType, typename TargetType = ValueType>
static auto to_json(BasicJsonType& j, TargetType && val) noexcept(
    noexcept(::nlohmann::to_json(j, std::forward<TargetType>(val))))
-> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)), void())

This function is usually called by the constructors of the basic_json class.

Parameters

j (out)
JSON value to write to
val (in)
value to read from

Examples

??? example

The example below shows how a `to_json` function can be implemented for a user-defined type. This function is called
by the `adl_serializer` when the constructor `basic_json(ns::person)` is called.
    
```cpp
#include <iostream>
#include <nlohmann/json.hpp>

using json = nlohmann::json;

namespace ns
{
// a simple struct to model a person
struct person
{
    std::string name;
    std::string address;
    int age;
};
} // namespace ns

namespace ns
{
void to_json(json& j, const person& p)
{
    j = json{ {"name", p.name}, {"address", p.address}, {"age", p.age} };
}
} // namespace ns

int main()
{
    ns::person p = {"Ned Flanders", "744 Evergreen Terrace", 60};

    json j = p;

    std::cout << j << std::endl;
}

```

Output:

```json
{"address":"744 Evergreen Terrace","age":60,"name":"Ned Flanders"}

```

See also

Version history

  • Added in version 2.1.0.