1
0
mirror of https://github.com/nlohmann/json.git synced 2025-07-29 23:01:16 +03:00

📝 add more API documentation

This commit is contained in:
Niels Lohmann
2020-08-12 13:41:59 +02:00
parent b888afe5f4
commit fe89049aee
78 changed files with 5092 additions and 177 deletions

View File

@ -0,0 +1,78 @@
# basic_json::update
```cpp
// (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](https://docs.python.org/3.6/library/stdtypes.html#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 thw following exceptions:
- Throws [`type_error.312`](../../home/exceptions.md#jsonexceptiontype_error312) 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`](../../home/exceptions.md#jsonexceptiontype_error312) if called on JSON values other than objects;
example: `"cannot use update() with string"`
- Throws [`invalid_iterator.202`](../../home/exceptions.md#jsonexceptioninvalid_iterator202) 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`](../../home/exceptions.md#jsonexceptioninvalid_iterator210) 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.