🔥 consolidate documentation

This commit is contained in:
Niels Lohmann 2021-11-01 22:28:53 +01:00
parent fd054df1c6
commit dee9c8c4db
No known key found for this signature in database
GPG Key ID: 7F3CEA63AE251B69
5 changed files with 61 additions and 63 deletions

View File

@ -279,7 +279,7 @@ Access to the JSON value
## Non-member functions
- operator<<(std::ostream&) - serialize to stream
- [**operator<<(std::ostream&)**](operator_ltlt.md) - serialize to stream
- operator>>(std::istream&) - deserialize from stream
## Literals

View File

@ -0,0 +1,55 @@
# operator<<(basic_json)
```cpp
std::ostream& operator<<(std::ostream& o, const basic_json& j)
```
Serialize the given JSON value `j` to the output stream `o`. The JSON value will be serialized using the
[`dump`](dump.md) member function.
- The indentation of the output can be controlled with the member variable `width` of the output stream `o`. For
instance, using the manipulator `std::setw(4)` on `o` sets the indentation level to `4` and the serialization result
is the same as calling `dump(4)`.
- The indentation character can be controlled with the member variable `fill` of the output stream `o`. For instance,
the manipulator `std::setfill('\\t')` sets indentation to use a tab character rather than the default space character.
## Parameters
`o` (in, out)
: stream to serialize to
`j` (in)
: JSON value to serialize
## Return value
the stream `o`
## Exceptions
Throws [`type_error.316`](../../home/exceptions.md#jsonexceptiontype_error316) if a string stored inside the JSON value
is not UTF-8 encoded. Note that unlike the [`dump`](dump.md) member functions, no `error_handler` can be set.
## Complexity
Linear.
## Example
??? example
The example below shows the serialization with different parameters to `width` to adjust the indentation level.
```cpp
--8<-- "examples/operator_serialize.cpp"
```
Output:
```json
--8<-- "examples/operator_serialize.output"
```
## Version history
- Added in version 1.0.0
- Support for indentation character added in version 3.0.0.

View File

@ -148,6 +148,7 @@ nav:
- api/basic_json/operator_eq.md
- api/basic_json/operator_ne.md
- api/basic_json/operator_lt.md
- api/basic_json/operator_ltlt.md
- api/basic_json/operator_le.md
- api/basic_json/operator_gt.md
- api/basic_json/operator_ge.md

View File

@ -3638,37 +3638,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
/// @name serialization
/// @{
#ifndef JSON_NO_IO
/*!
@brief serialize to stream
Serialize the given JSON value @a j to the output stream @a o. The JSON
value will be serialized using the @ref dump member function.
- The indentation of the output can be controlled with the member variable
`width` of the output stream @a o. For instance, using the manipulator
`std::setw(4)` on @a o sets the indentation level to `4` and the
serialization result is the same as calling `dump(4)`.
- The indentation character can be controlled with the member variable
`fill` of the output stream @a o. For instance, the manipulator
`std::setfill('\\t')` sets indentation to use a tab character rather than
the default space character.
@param[in,out] o stream to serialize to
@param[in] j JSON value to serialize
@return the stream @a o
@throw type_error.316 if a string stored inside the JSON value is not
UTF-8 encoded
@complexity Linear.
@liveexample{The example below shows the serialization with different
parameters to `width` to adjust the indentation level.,operator_serialize}
@since version 1.0.0; indentation character added in version 3.0.0
*/
/// @brief serialize to stream
/// @sa https://json.nlohmann.me/api/basic_json/operator_ltlt/
friend std::ostream& operator<<(std::ostream& o, const basic_json& j)
{
// read width member and use it as indentation parameter if nonzero

View File

@ -21139,37 +21139,8 @@ class basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-spec
/// @name serialization
/// @{
#ifndef JSON_NO_IO
/*!
@brief serialize to stream
Serialize the given JSON value @a j to the output stream @a o. The JSON
value will be serialized using the @ref dump member function.
- The indentation of the output can be controlled with the member variable
`width` of the output stream @a o. For instance, using the manipulator
`std::setw(4)` on @a o sets the indentation level to `4` and the
serialization result is the same as calling `dump(4)`.
- The indentation character can be controlled with the member variable
`fill` of the output stream @a o. For instance, the manipulator
`std::setfill('\\t')` sets indentation to use a tab character rather than
the default space character.
@param[in,out] o stream to serialize to
@param[in] j JSON value to serialize
@return the stream @a o
@throw type_error.316 if a string stored inside the JSON value is not
UTF-8 encoded
@complexity Linear.
@liveexample{The example below shows the serialization with different
parameters to `width` to adjust the indentation level.,operator_serialize}
@since version 1.0.0; indentation character added in version 3.0.0
*/
/// @brief serialize to stream
/// @sa https://json.nlohmann.me/api/basic_json/operator_ltlt/
friend std::ostream& operator<<(std::ostream& o, const basic_json& j)
{
// read width member and use it as indentation parameter if nonzero