nlohmann json可以很方便的实现struct与json的互转。
-
对于化定义结构体成员时有就地初始的情况:、
#include <iostream>
#include <string>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
using namespace std;
struct PersonDefault{
string name = "";
int sex = 1;
};
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(PersonDefault, name, sex)
void struct_default_json()
{
PersonDefault p1 = {"xiaoming", 1};
json j1 = p1;
cout<<"j1:"<<j1<<endl;
PersonDefault p2 = j1.get<PersonDefault>();
cout<<"p2:"<<p2.name<<" sex:"<<p2.sex<<endl;
}
int main()
{
struct_default_json();
return 0;
}
运行程序输出:
j1:{"name":"xiaoming","sex":1}
p2:xiaomi