mirror of
https://github.com/nlohmann/json.git
synced 2026-07-09 03:55:09 +00:00
69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
# <small>nlohmann::basic_json::</small>start_pos
|
|
|
|
```cpp
|
|
#if JSON_DIAGNOSTIC_POSITIONS
|
|
constexpr std::size_t start_pos() const noexcept;
|
|
#endif
|
|
```
|
|
|
|
Returns the position of the first character in the JSON string from which the value was parsed from.
|
|
|
|
| JSON type | return value |
|
|
|-----------|------------------------------------------------|
|
|
| object | position of the opening `{` |
|
|
| array | position of the opening `[` |
|
|
| string | position of the opening `"` |
|
|
| number | position of the first character |
|
|
| boolean | position of `t` for `true` and `f` for `false` |
|
|
| null | position of `n` |
|
|
|
|
## Return value
|
|
|
|
the position of the first character of the value in the parsed JSON string, if the value was created by the
|
|
[`parse`](parse.md) function, or `std::string::npos` if the value was constructed otherwise
|
|
|
|
## Exception safety
|
|
|
|
No-throw guarantee: this member function never throws exceptions.
|
|
|
|
## Complexity
|
|
|
|
Constant.
|
|
|
|
## Notes
|
|
|
|
!!! note "Note"
|
|
|
|
The function is only available if macro [`JSON_DIAGNOSTIC_POSITIONS`](../macros/json_diagnostic_positions.md) has
|
|
been defined to `#!cpp 1` before including the library header.
|
|
|
|
!!! warning "Invalidation"
|
|
|
|
The returned positions are only valid as long as the JSON value is not changed. The positions are *not* updated
|
|
when the JSON value is changed.
|
|
|
|
## Examples
|
|
|
|
??? example "Example"
|
|
|
|
```cpp
|
|
--8<-- "examples/diagnostic_positions.cpp"
|
|
```
|
|
|
|
Output:
|
|
|
|
```
|
|
--8<-- "examples/diagnostic_positions.output"
|
|
```
|
|
|
|
The output shows the start/end positions of all the objects and fields in the JSON string.
|
|
|
|
## See also
|
|
|
|
- [end_pos](end_pos.md) to access the end position
|
|
- [JSON_DIAGNOSTIC_POSITIONS](../macros/json_diagnostic_positions.md) for an overview of the diagnostic positions
|
|
|
|
## Version history
|
|
|
|
- Added in version 3.12.0.
|