1 #include <iostream> 2 #include <nlohmann/json.hpp> 3 4 using json = nlohmann::json; 5 main()6int 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