Files
json/docs/mkdocs/docs/api/json_editable_document.md
T
Niels Lohmann 52b72b5684 Improve documentation: byte layouts, release pages, See also, dark-mode images (#5906)
- Make the iterator range illustrations legible in dark mode (prefers-color-scheme
  rules inside the SVGs).
- Add a "Byte layout" section with a color-coded byte table to each binary format
  page (BJData, BON8, BSON, CBOR, MessagePack, UBJSON), and highlight the smallest
  size per file in the comparison table.
- Add "See also" sections to the overview pages that lacked one.
- Split the release notes into one page per release, grouped by minor version on
  the overview page, with an "API changes" section per release generated from the
  API pages' version histories (hooks/api_changes.py).
- Fact-check the release notes and version histories against the release tags and
  correct wrong or misleading entries (e.g., json_serializer 2.1.0, merge_patch
  3.1.0, items, count, operator[], to_bjdata, std::string_view key support).

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-10-24 17:57:44 +02:00

1.5 KiB

nlohmann::json_editable_document

Defined in header <nlohmann/json_view.hpp>

using json_editable_document = basic_json_document<json, true>;

This type is an editable basic_json_document of the default json specialization: in addition to everything json_document offers, set and push_back change values after parsing, without ever rewriting the source text -- see Edits and Editing a document.

Examples

??? example

The example below patches two fields of a small configuration document -- changing one and adding another --
and dumps it back out with the member order and the spelling of the untouched number preserved, something a
plain [`json`](json.md) value cannot do.

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

Output:

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

See also

Version history

Added in version 3.13.0.