mirror of
https://github.com/nlohmann/json.git
synced 2025-07-07 23:41:10 +03:00
1.9 KiB
1.9 KiB
nlohmann::basic_json::start_pos
#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
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 to access the end position
- JSON_DIAGNOSTIC_POSITIONS for an overview of the diagnostic positions
Version history
- Added in version 3.12.0.