mirror of
https://github.com/nlohmann/json.git
synced 2026-10-03 21:20:30 +00:00
1.6 KiB
1.6 KiB
nlohmann::basic_json::flatten
basic_json flatten() const;
The function creates a JSON object whose keys are JSON pointers (see RFC 6901)
and whose values are all primitive (see is_primitive() for more information). The original JSON
value can be restored using the unflatten() function.
Return value
an object that maps JSON pointers to primitive values
Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
Complexity
Linear in the size of the JSON value.
Notes
Empty objects and arrays are flattened to #!json null and will not be reconstructed correctly by the
unflatten() function.
Examples
??? example "Example: flatten a JSON object"
The following code shows how a JSON object is flattened to an object whose keys consist of JSON pointers.
```cpp
--8<-- "examples/flatten.cpp"
```
Output:
```json
--8<-- "examples/flatten.output"
```
??? example "Example: empty objects and arrays are flattened to #!json null"
The following code shows that an empty object and an empty array are both flattened to `#!json null`, and that
`unflatten()` restores them as `#!json null` rather than as empty containers.
```cpp
--8<-- "examples/flatten__empty.cpp"
```
Output:
```json
--8<-- "examples/flatten__empty.output"
```
See also
- unflatten the reverse function
Version history
- Added in version 2.0.0.