WhisperCom/doc/mkdocs/docs/api/basic_json/update.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

2.1 KiB

basic_json::update

// (1)
void update(const_reference j);

// (2)
void update(const_iterator first, const_iterator last);
  1. Inserts all values from JSON object j and overwrites existing keys.
  2. Inserts all values from from range [first, last) and overwrites existing keys.

The function is motivated by Python's dict.update function.

Parameters

j (in)
JSON object to read values from
first (in)
begin of the range of elements to insert
last (in)
end of the range of elements to insert

Exceptions

  1. The function can throw the following exceptions:
    • Throws type_error.312 if called on JSON values other than objects; example: "cannot use update() with string"
  2. The function can throw thw following exceptions:
    • Throws type_error.312 if called on JSON values other than objects; example: "cannot use update() with string"
    • Throws invalid_iterator.202 if called on an iterator which does not belong to the current JSON value; example: "iterator does not fit current value"
    • Throws invalid_iterator.210 if first and last do not belong to the same JSON value; example: "iterators do not fit"

Complexity

  1. O(N*log(size() + N)), where N is the number of elements to insert.
  2. O(N*log(size() + N)), where N is the number of elements to insert.

Example

??? example

The example shows how `update()` is used.

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

Output:

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

??? example

The example shows how `update()` is used.

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

Output:

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

Version history

  • Added in version 3.0.0.