JSON for Modern C++  3.7.3

◆ flatten()

basic_json nlohmann::basic_json::flatten ( ) const
inline

The function creates a JSON object whose keys are JSON pointers (see RFC 6901) and whose values are all primitive. The original JSON value can be restored using the unflatten() function.

Returns
an object that maps JSON pointers to primitive values
Note
Empty objects and arrays are flattened to null and will not be reconstructed correctly by the unflatten() function.
Complexity
Linear in the size the JSON value.
Example
The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.
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 value
10  json j =
11  {
12  {"pi", 3.141},
13  {"happy", true},
14  {"name", "Niels"},
15  {"nothing", nullptr},
16  {
17  "answer", {
18  {"everything", 42}
19  }
20  },
21  {"list", {1, 0, 2}},
22  {
23  "object", {
24  {"currency", "USD"},
25  {"value", 42.99}
26  }
27  }
28  };
29 
30  // call flatten()
31  std::cout << std::setw(4) << j.flatten() << '\n';
32 }

Output (play with this example online):
{
    "/answer/everything": 42,
    "/happy": true,
    "/list/0": 1,
    "/list/1": 0,
    "/list/2": 2,
    "/name": "Niels",
    "/nothing": null,
    "/object/currency": "USD",
    "/object/value": 42.99,
    "/pi": 3.141
}
The example code above can be translated with
g++ -std=c++11 -Isingle_include doc/examples/flatten.cpp -o flatten 
See also
unflatten() for the reverse function
Since
version 2.0.0

Definition at line 22022 of file json.hpp.

nlohmann::json
basic_json<> json
default JSON class
Definition: json.hpp:2445