JSON for Modern C++  3.6.1

◆ operator<< [1/2]

template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer>
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]ostream to serialize to
[in]jJSON value to serialize
Returns
the stream o
Exceptions
type_error.316if 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.
1 #include <iostream>
2 #include <iomanip>
3 #include <nlohmann/json.hpp>
4 
5 using json = nlohmann::json;
6 
7 int main()
8 {
9  // create JSON values
10  json j_object = {{"one", 1}, {"two", 2}};
11  json j_array = {1, 2, 4, 8, 16};
12 
13  // serialize without indentation
14  std::cout << j_object << "\n\n";
15  std::cout << j_array << "\n\n";
16 
17  // serialize with indentation
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";
21 }
basic_json<> json
default JSON class
Definition: json.hpp:871

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 with
g++ -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 18766 of file json.hpp.