2017-07-09 09:51:38 +00:00
|
|
|
#include <iostream>
|
2018-02-01 21:20:26 +00:00
|
|
|
#include <nlohmann/json.hpp>
|
2016-04-17 16:18:49 +00:00
|
|
|
|
|
|
|
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");
|
|
|
|
}
|
2017-03-08 20:03:19 +00:00
|
|
|
catch (json::parse_error& e)
|
2016-04-17 16:18:49 +00:00
|
|
|
{
|
2017-03-08 20:03:19 +00:00
|
|
|
std::cout << e.what() << '\n';
|
2016-04-17 16:18:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// error: JSON pointer uses escape symbol ~ not followed by 0 or 1
|
|
|
|
try
|
|
|
|
{
|
|
|
|
json::json_pointer p10("/foo/~");
|
|
|
|
}
|
2017-03-08 20:03:19 +00:00
|
|
|
catch (json::parse_error& e)
|
2016-04-17 16:18:49 +00:00
|
|
|
{
|
2017-03-08 20:03:19 +00:00
|
|
|
std::cout << e.what() << '\n';
|
2016-04-17 16:18:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// error: JSON pointer uses escape symbol ~ not followed by 0 or 1
|
|
|
|
try
|
|
|
|
{
|
|
|
|
json::json_pointer p11("/foo/~3");
|
|
|
|
}
|
2017-03-08 20:03:19 +00:00
|
|
|
catch (json::parse_error& e)
|
2016-04-17 16:18:49 +00:00
|
|
|
{
|
2017-03-08 20:03:19 +00:00
|
|
|
std::cout << e.what() << '\n';
|
2016-04-17 16:18:49 +00:00
|
|
|
}
|
|
|
|
}
|