Files
json/api/basic_json/json_serializer.md
T
2026-10-03 05:43:12 +00:00

1.6 KiB

nlohmann::basic_json::json_serializer

template<typename T, typename SFINAE>
using json_serializer = JSONSerializer<T, SFINAE>;

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.

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.

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"
```

See also

  • adl_serializer the default json_serializer
  • get explicit type conversion using the json_serializer's from_json() method
  • get_to explicit type conversion into a variable using the json_serializer's from_json() method
  • Arbitrary Type Conversions - the article on converting between JSON values and arbitrary types

Version history

  • Since version 2.0.0.