| #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 (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 (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 (json::parse_error& e) |
| { |
| std::cout << e.what() << '\n'; |
| } |
| } |