mirror of
https://github.com/nlohmann/json.git
synced 2026-10-27 16:28:57 +00:00
* json_view: view_mode enum instead of bool Editable, node_kind for node::kind basic_json_document and basic_json_view take a view_mode (read_only, the default, or editable) instead of a bool: basic_json_document<json, true> did not say what true means. The shortcut aliases are unchanged. The kind of a node is a node_kind (the value_t values plus link, 10 as before), which removes the static_cast<std::uint8_t>(value_t::...) of every comparison. The node and image layouts are unchanged. Signed-off-by: Niels Lohmann <mail@nlohmann.me> * json_view: node_kind in the node writers, spell out read_only, comment fixes The builder and the edit functions take and store a node_kind instead of casting a value_t; the numbering assertions and the comments now speak of node_kind, and the link kind notes that it follows value_t::discarded. The read-only aliases name view_mode::read_only like the editable ones. view_mode.md says the mode is a compile-time property of the type. Signed-off-by: Niels Lohmann <mail@nlohmann.me> * json_view: views of read-only documents convert to editable views A read-only document has no edits, so a view of it reads correctly as a view of an editable document before its first edit. The implicit conversion lets a function taking a json_editable_view accept the views of both modes. There is no conversion the other way: a read-only view of an editable document would read wrong values after the next edit. The mode comparisons in the cross-mode operator==/!= use an is_other_mode trait, which astyle keeps compact. Signed-off-by: Niels Lohmann <mail@nlohmann.me> --------- Signed-off-by: Niels Lohmann <mail@nlohmann.me>
35 lines
757 B
Markdown
35 lines
757 B
Markdown
# <small>nlohmann::</small>json_view
|
|
|
|
<small>Defined in header `<nlohmann/json_view.hpp>`</small>
|
|
|
|
```cpp
|
|
using json_view = basic_json_view<json, view_mode::read_only>;
|
|
```
|
|
|
|
This type is a [`basic_json_view`](basic_json_view/index.md) of a value of a [`json_document`](json_document.md).
|
|
|
|
## Examples
|
|
|
|
??? example
|
|
|
|
The example below demonstrates how to use the type `nlohmann::json_view`.
|
|
|
|
```cpp
|
|
--8<-- "examples/json_view.cpp"
|
|
```
|
|
|
|
Output:
|
|
|
|
```json
|
|
--8<-- "examples/json_view.output"
|
|
```
|
|
|
|
## See also
|
|
|
|
- [json_document](json_document.md) - the document type this view refers into
|
|
- [ordered_json_view](ordered_json_view.md) - the corresponding view for `ordered_json_document`
|
|
|
|
## Version history
|
|
|
|
Added in version 3.13.0.
|