json/docs/examples/json_pointer.cpp

48 lines
1.0 KiB
C++
Raw Normal View History

#include <iostream>
#include <nlohmann/json.hpp>
2016-04-17 18:18:49 +02: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");
}
catch (const json::parse_error& e)
2016-04-17 18:18:49 +02:00
{
std::cout << e.what() << '\n';
2016-04-17 18:18:49 +02:00
}
// error: JSON pointer uses escape symbol ~ not followed by 0 or 1
try
{
json::json_pointer p10("/foo/~");
}
catch (const json::parse_error& e)
2016-04-17 18:18:49 +02:00
{
std::cout << e.what() << '\n';
2016-04-17 18:18:49 +02:00
}
// 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)
2016-04-17 18:18:49 +02:00
{
std::cout << e.what() << '\n';
2016-04-17 18:18:49 +02:00
}
}