|
◆ operator<< [2/2]
std::ostream& operator<< |
( |
std::ostream & |
o, |
|
|
const basic_json & |
j |
|
) |
| |
|
friend |
Serialize the given JSON value j to the output stream o. The JSON value will be serialized using the dump 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
-
[in,out] | o | stream to serialize to |
[in] | j | JSON value to serialize |
- Returns
- the stream o
- Exceptions
-
type_error.316 | if a string stored inside the JSON value is not UTF-8 encoded |
- Complexity
- Linear.
- Example
- The example below shows the serialization with different parameters to
width to adjust the indentation level.
3 #include <nlohmann/json.hpp>
10 json j_object = {{ "one", 1}, { "two", 2}};
11 json j_array = {1, 2, 4, 8, 16};
14 std::cout << j_object << "\n\n";
15 std::cout << j_array << "\n\n";
18 std::cout << std::setw(4) << j_object << "\n\n";
19 std::cout << std::setw(2) << j_array << "\n\n";
20 std::cout << std::setw(1) << std::setfill( '\t') << j_object << "\n\n";
Output (play with this example online): {"one":1,"two":2}
[1,2,4,8,16]
{
"one": 1,
"two": 2
}
[
1,
2,
4,
8,
16
]
{
"one": 1,
"two": 2
}
The example code above can be translated withg++ -std=c++11 -Isingle_include doc/examples/operator_serialize.cpp -o operator_serialize
- Since
- version 1.0.0; indentation character added in version 3.0.0
Definition at line 20652 of file json.hpp.
|