38 lines
664 B
C++
38 lines
664 B
C++
|
#include <iostream>
|
||
|
#include <nlohmann/json.hpp>
|
||
|
|
||
|
using json = nlohmann::json;
|
||
|
|
||
|
namespace ns
|
||
|
{
|
||
|
// a simple struct to model a person
|
||
|
struct person
|
||
|
{
|
||
|
std::string name;
|
||
|
std::string address;
|
||
|
int age;
|
||
|
};
|
||
|
} // namespace ns
|
||
|
|
||
|
namespace ns
|
||
|
{
|
||
|
void from_json(const json& j, person& p)
|
||
|
{
|
||
|
j.at("name").get_to(p.name);
|
||
|
j.at("address").get_to(p.address);
|
||
|
j.at("age").get_to(p.age);
|
||
|
}
|
||
|
} // namespace ns
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
json j;
|
||
|
j["name"] = "Ned Flanders";
|
||
|
j["address"] = "744 Evergreen Terrace";
|
||
|
j["age"] = 60;
|
||
|
|
||
|
auto p = j.template get<ns::person>();
|
||
|
|
||
|
std::cout << p.name << " (" << p.age << ") lives in " << p.address << std::endl;
|
||
|
}
|