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 // read-only access 16c5f01b2fSopenharmony_ci 17c5f01b2fSopenharmony_ci // output element with JSON pointer "/number" 18c5f01b2fSopenharmony_ci std::cout << j["/number"_json_pointer] << '\n'; 19c5f01b2fSopenharmony_ci // output element with JSON pointer "/string" 20c5f01b2fSopenharmony_ci std::cout << j["/string"_json_pointer] << '\n'; 21c5f01b2fSopenharmony_ci // output element with JSON pointer "/array" 22c5f01b2fSopenharmony_ci std::cout << j["/array"_json_pointer] << '\n'; 23c5f01b2fSopenharmony_ci // output element with JSON pointer "/array/1" 24c5f01b2fSopenharmony_ci std::cout << j["/array/1"_json_pointer] << '\n'; 25c5f01b2fSopenharmony_ci 26c5f01b2fSopenharmony_ci // writing access 27c5f01b2fSopenharmony_ci 28c5f01b2fSopenharmony_ci // change the string 29c5f01b2fSopenharmony_ci j["/string"_json_pointer] = "bar"; 30c5f01b2fSopenharmony_ci // output the changed string 31c5f01b2fSopenharmony_ci std::cout << j["string"] << '\n'; 32c5f01b2fSopenharmony_ci 33c5f01b2fSopenharmony_ci // "change" a nonexisting object entry 34c5f01b2fSopenharmony_ci j["/boolean"_json_pointer] = true; 35c5f01b2fSopenharmony_ci // output the changed object 36c5f01b2fSopenharmony_ci std::cout << j << '\n'; 37c5f01b2fSopenharmony_ci 38c5f01b2fSopenharmony_ci // change an array element 39c5f01b2fSopenharmony_ci j["/array/1"_json_pointer] = 21; 40c5f01b2fSopenharmony_ci // "change" an array element with nonexisting index 41c5f01b2fSopenharmony_ci j["/array/4"_json_pointer] = 44; 42c5f01b2fSopenharmony_ci // output the changed array 43c5f01b2fSopenharmony_ci std::cout << j["array"] << '\n'; 44c5f01b2fSopenharmony_ci 45c5f01b2fSopenharmony_ci // "change" the array element past the end 46c5f01b2fSopenharmony_ci j["/array/-"_json_pointer] = 55; 47c5f01b2fSopenharmony_ci // output the changed array 48c5f01b2fSopenharmony_ci std::cout << j["array"] << '\n'; 49c5f01b2fSopenharmony_ci} 50