# nlohmann::basic_json::json_serializer ```cpp template using json_serializer = JSONSerializer; ``` ## Template parameters `T` : type to convert; will be used in the `to_json`/`from_json` functions `SFINAE` : type to add compile type checks via SFINAE; usually `#!cpp void` ## Notes #### Default type The default values for `json_serializer` is [`adl_serializer`](../adl_serializer/index.md). #### Requirements A custom serializer must provide `#!cpp static void to_json(basic_json&, T)` for every type it serializes, and either `#!cpp static void from_json(const basic_json&, T&)` or `#!cpp static T from_json(const basic_json&)` for every type it deserializes. See [Template Parameter Requirements](../../features/types/template_parameters.md#jsonserializer). ## Examples ??? example The example below shows how a conversion of a non-default-constructible type is implemented via a specialization of the `adl_serializer`. ```cpp --8<-- "examples/from_json__non_default_constructible.cpp" ``` Output: ```json --8<-- "examples/from_json__non_default_constructible.output" ``` ## Version history - Since version 2.0.0.