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