# nlohmann::adl_serializer::to_json ```cpp template static auto to_json(BasicJsonType& j, TargetType && val) noexcept( noexcept(::nlohmann::to_json(j, std::forward(val)))) -> decltype(::nlohmann::to_json(j, std::forward(val)), void()) ``` This function is usually called by the constructors of the [basic_json](../basic_json/index.md) 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 --8<-- "examples/to_json.cpp" ``` Output: ```json --8<-- "examples/to_json.output" ``` ## See also - [from_json](from_json.md) ## Version history - Added in version 2.1.0.