WhisperCom/doc/mkdocs/docs/api/basic_json/unflatten.md
Dominik Meyer cc002ebfbb Squashed 'libs/json/' content from commit f42a74b8
git-subtree-dir: libs/json
git-subtree-split: f42a74b8f53cc308647123d49d33d1c8122e3f42
2021-08-22 01:28:31 +02:00

1.5 KiB

basic_json::unflatten

basic_json unflatten() const;

The function restores the arbitrary nesting of a JSON value that has been flattened before using the flatten() function. The JSON value must meet certain constraints:

  1. The value must be an object.
  2. The keys must be JSON pointers (see RFC 6901)
  3. The mapped values must be primitive JSON types.

Return value

the original JSON from a flattened version

Exceptions

The function can throw the following exceptions:

Exception safety

Strong exception safety: if an exception occurs, the original value stays intact.

Complexity

Linear in the size the JSON value.

Notes

Empty objects and arrays are flattened by flatten() to #!json null values and can not unflattened to their original type. Apart from this example, for a JSON value j, the following is always true: #!cpp j == j.flatten().unflatten().

Example

??? example

The following code shows how a flattened JSON object is unflattened into the original nested JSON object.

```cpp
--8<-- "examples/unflatten.cpp"
```

Output:

```json
--8<-- "examples/unflatten.output"
```

Version history

  • Added in version 2.0.0.