JSON for Modern C++  3.0
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 = int64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator>
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).

Parameters
[in,out]ostream to serialize to
[in]jJSON value to serialize
Returns
the stream o
Complexity
Linear.
Example
The example below shows the serialization with different parameters to width to adjust the indentation level.
1 #include <json.hpp>
2 
3 using namespace nlohmann;
4 
5 int main()
6 {
7  // create JSON values
8  json j_object = {{"one", 1}, {"two", 2}};
9  json j_array = {1, 2, 4, 8, 16};
10 
11  // serialize without indentation
12  std::cout << j_object << "\n\n";
13  std::cout << j_array << "\n\n";
14 
15  // serialize with indentation
16  std::cout << std::setw(4) << j_object << "\n\n";
17  std::cout << std::setw(2) << j_array << "\n\n";
18 }
a class to store JSON values
Definition: json.hpp:121
namespace for Niels Lohmann
Definition: json.hpp:56
Output:
{"one":1,"two":2}

[1,2,4,8,16]

{
    "one": 1,
    "two": 2
}

[
  1,
  2,
  4,
  8,
  16
]

The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/operator_serialize.cpp -o operator_serialize 
.