JSON for Modern C++  3.5.0

◆ flatten()

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>
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 }
basic_json<> json
default JSON class
Definition: json.hpp:110
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 19700 of file json.hpp.