mirror of
https://github.com/nlohmann/json.git
synced 2026-10-14 18:27:13 +00:00
deploy: 40a62947d3
This commit is contained in:
1 parent
79119509a9
commit
22fba27145
555 files changed
+17342
-1394
No files matched your search
@@ -34,13 +34,63 @@ Linear in the length of `s`.
|
||||
The example shows the construction several valid JSON pointers as well as the exceptional behavior.
|
||||
|
||||
```cpp
|
||||
--8<-- "examples/json_pointer.cpp"
|
||||
#include <iostream>
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
using json = nlohmann::json;
|
||||
|
||||
int main()
|
||||
{
|
||||
// correct JSON pointers
|
||||
json::json_pointer p1;
|
||||
json::json_pointer p2("");
|
||||
json::json_pointer p3("/");
|
||||
json::json_pointer p4("//");
|
||||
json::json_pointer p5("/foo/bar");
|
||||
json::json_pointer p6("/foo/bar/-");
|
||||
json::json_pointer p7("/foo/~0");
|
||||
json::json_pointer p8("/foo/~1");
|
||||
|
||||
// error: JSON pointer does not begin with a slash
|
||||
try
|
||||
{
|
||||
json::json_pointer p9("foo");
|
||||
}
|
||||
catch (const json::parse_error& e)
|
||||
{
|
||||
std::cout << e.what() << '\n';
|
||||
}
|
||||
|
||||
// error: JSON pointer uses escape symbol ~ not followed by 0 or 1
|
||||
try
|
||||
{
|
||||
json::json_pointer p10("/foo/~");
|
||||
}
|
||||
catch (const json::parse_error& e)
|
||||
{
|
||||
std::cout << e.what() << '\n';
|
||||
}
|
||||
|
||||
// error: JSON pointer uses escape symbol ~ not followed by 0 or 1
|
||||
try
|
||||
{
|
||||
json::json_pointer p11("/foo/~3");
|
||||
}
|
||||
catch (const json::parse_error& e)
|
||||
{
|
||||
std::cout << e.what() << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
```json
|
||||
--8<-- "examples/json_pointer.output"
|
||||
[json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'foo'
|
||||
[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'
|
||||
[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'
|
||||
|
||||
```
|
||||
|
||||
## See also
|
||||
|
||||
Reference in new issue
Block a user