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