mirror of
https://github.com/nlohmann/json.git
synced 2026-10-03 21:20:30 +00:00
55 lines
1.6 KiB
Markdown
55 lines
1.6 KiB
Markdown
# <small>nlohmann::basic_json::</small>json_serializer
|
|
|
|
```cpp
|
|
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`](../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"
|
|
```
|
|
|
|
## See also
|
|
|
|
- [adl_serializer](../adl_serializer/index.md) the default `json_serializer`
|
|
- [get](get.md) explicit type conversion using the `json_serializer`'s `from_json()` method
|
|
- [get_to](get_to.md) explicit type conversion into a variable using the `json_serializer`'s `from_json()` method
|
|
- [Arbitrary Type Conversions](../../features/arbitrary_types.md) - the article on converting between JSON values and arbitrary types
|
|
|
|
## Version history
|
|
|
|
- Since version 2.0.0.
|