1c5f01b2fSopenharmony_ci#include <iostream> 2c5f01b2fSopenharmony_ci#include <nlohmann/json.hpp> 3c5f01b2fSopenharmony_ci 4c5f01b2fSopenharmony_ciusing json = nlohmann::json; 5c5f01b2fSopenharmony_ci 6c5f01b2fSopenharmony_cinamespace ns 7c5f01b2fSopenharmony_ci{ 8c5f01b2fSopenharmony_ci// a simple struct to model a person 9c5f01b2fSopenharmony_cistruct person 10c5f01b2fSopenharmony_ci{ 11c5f01b2fSopenharmony_ci std::string name; 12c5f01b2fSopenharmony_ci std::string address; 13c5f01b2fSopenharmony_ci int age; 14c5f01b2fSopenharmony_ci}; 15c5f01b2fSopenharmony_ci} // namespace ns 16c5f01b2fSopenharmony_ci 17c5f01b2fSopenharmony_cinamespace ns 18c5f01b2fSopenharmony_ci{ 19c5f01b2fSopenharmony_civoid from_json(const json& j, person& p) 20c5f01b2fSopenharmony_ci{ 21c5f01b2fSopenharmony_ci j.at("name").get_to(p.name); 22c5f01b2fSopenharmony_ci j.at("address").get_to(p.address); 23c5f01b2fSopenharmony_ci j.at("age").get_to(p.age); 24c5f01b2fSopenharmony_ci} 25c5f01b2fSopenharmony_ci} // namespace ns 26c5f01b2fSopenharmony_ci 27c5f01b2fSopenharmony_ciint main() 28c5f01b2fSopenharmony_ci{ 29c5f01b2fSopenharmony_ci json j; 30c5f01b2fSopenharmony_ci j["name"] = "Ned Flanders"; 31c5f01b2fSopenharmony_ci j["address"] = "744 Evergreen Terrace"; 32c5f01b2fSopenharmony_ci j["age"] = 60; 33c5f01b2fSopenharmony_ci 34c5f01b2fSopenharmony_ci auto p = j.get<ns::person>(); 35c5f01b2fSopenharmony_ci 36c5f01b2fSopenharmony_ci std::cout << p.name << " (" << p.age << ") lives in " << p.address << std::endl; 37c5f01b2fSopenharmony_ci} 38