12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include <iostream>
- #include <nlohmann/json.hpp>
- using json = nlohmann::json;
- using namespace nlohmann::literals;
- int main()
- {
- // create a JSON value
- json j =
- {
- {"number", 1}, {"string", "foo"}, {"array", {1, 2}}
- };
- // read-only access
- // output element with JSON pointer "/number"
- std::cout << j["/number"_json_pointer] << '\n';
- // output element with JSON pointer "/string"
- std::cout << j["/string"_json_pointer] << '\n';
- // output element with JSON pointer "/array"
- std::cout << j["/array"_json_pointer] << '\n';
- // output element with JSON pointer "/array/1"
- std::cout << j["/array/1"_json_pointer] << '\n';
- // writing access
- // change the string
- j["/string"_json_pointer] = "bar";
- // output the changed string
- std::cout << j["string"] << '\n';
- // "change" a nonexisting object entry
- j["/boolean"_json_pointer] = true;
- // output the changed object
- std::cout << j << '\n';
- // change an array element
- j["/array/1"_json_pointer] = 21;
- // "change" an array element with nonexisting index
- j["/array/4"_json_pointer] = 44;
- // output the changed array
- std::cout << j["array"] << '\n';
- // "change" the array element past the end
- j["/array/-"_json_pointer] = 55;
- // output the changed array
- std::cout << j["array"] << '\n';
- }
|