方法
json
对象j
从结构体person
对象p
中取数据,需要实现to_json
函数
void to_json(json& j, const person& p) {
j = json{
{"name", p.name}, {"address", p.address}, {"age", p.age}};
}
- 结构体
person
对象p
从json
对象j
中取数据,需要实现from_json
函数
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);
}
- 用法
json j = p; //调用 to_json
person p = j.get<person>(); //调用from_json
个人实现代码
struct SubModelData{
std::string module_key_name;
std::string json_type;
std::string default_value;
};
void from_json(const nlohmann::json& j,SubModelData& sub_model_data){
j.at("default_value").get_to(sub_model_data.default_value);
j.at("json_type").get_to(sub_model_data.json_type);
j.at("key_name").get_to(sub_model_data.module_key_name);
}
// 使用
SubModelData sub_model_data = j.get<SubModelData>();
注意:
函数 from_json
和 to_json
以及结构体声明要放在同一命名空间下,不然会找不到对应的函数隐式调用
更多使用帮助文档: https://github.com/nlohmann/json