• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <iostream>
2 #include <nlohmann/json.hpp>
3 
4 using json = nlohmann::json;
5 
main()6 int main()
7 {
8     // create a JSON value
9     json j =
10     {
11         {"number", 1}, {"string", "foo"}, {"array", {1, 2}}
12     };
13 
14     std::cout << std::boolalpha
15               << j.contains("/number"_json_pointer) << '\n'
16               << j.contains("/string"_json_pointer) << '\n'
17               << j.contains("/string"_json_pointer) << '\n'
18               << j.contains("/array"_json_pointer) << '\n'
19               << j.contains("/array/1"_json_pointer) << '\n'
20               << j.contains("/array/-"_json_pointer) << '\n'
21               << j.contains("/array/4"_json_pointer) << '\n'
22               << j.contains("/baz"_json_pointer) << std::endl;
23 
24     // out_of_range.106
25     try
26     {
27         // try to use an array index with leading '0'
28         j.contains("/array/01"_json_pointer);
29     }
30     catch (json::parse_error& e)
31     {
32         std::cout << e.what() << '\n';
33     }
34 
35     // out_of_range.109
36     try
37     {
38         // try to use an array index that is not a number
39         j.contains("/array/one"_json_pointer);
40     }
41     catch (json::parse_error& e)
42     {
43         std::cout << e.what() << '\n';
44     }
45 }
46