Files
json/docs/mkdocs/docs/api/basic_json/front.md
T
Niels Lohmann 7b755737b4 Address the review of json_view element access
From gregmarr's review of #5622:

- count() counts every member with the key, so count(key) > 1 detects
  duplicate keys; it was contains() as 0/1 before.
- get_to() passes types that get<T>() does not convert directly to
  from_json with the existing value, as basic_json::get_to() does, so that
  a from_json which sets only the fields present keeps the others.
- array_index() checks the empty token and "-" first; the results are
  unchanged.
- Docs: no "if an exception is thrown" where a view never changes
  anything; the borrowed source must also stay unmodified; items() on a
  temporary view is safe; back()/front() notes shortened; the basic_json
  see-also entries say how the view's results can differ.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-10-18 10:05:51 +02:00

1.4 KiB

nlohmann::basic_json::front

reference front();
const_reference front() const;

Returns a reference to the first element in the container. For a JSON container #!cpp c, the expression #!cpp c.front() is equivalent to #!cpp *c.begin().

Return value

In the case of a structured type (array or object), a reference to the first element is returned. In the case of number, string, boolean, or binary values, a reference to the value is returned.

Exception safety

Strong guarantee: if an exception is thrown, there are no changes in the JSON value.

Exceptions

If the JSON value is #!json null, exception invalid_iterator.214 is thrown.

Complexity

Constant.

Notes

!!! info "Precondition"

The array or object must not be empty. Calling `front` on an empty array or object yields undefined behavior.

Examples

??? example

The following code shows an example for `front()`.
 
```cpp
--8<-- "examples/front.cpp"
```

Output:

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

See also

  • back to access the last element
  • basic_json_view::front - the same access on a zero-copy view (document order, not sorted; duplicate keys are visited)

Version history

  • Added in version 1.0.0.
  • Adjusted code to return reference to binary values in version 3.8.0.