欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c復雜類序列化json

洪振霞1年前8瀏覽0評論

C++是一種高效、可靠的面向對象編程語言,常被用于開發(fā)大型、復雜的軟件系統(tǒng)。其中的一種類復雜數(shù)據結構,可以被序列化為JSON格式。在本文中,我們將介紹如何在C++中序列化復雜類為JSON格式。

#include <iostream>
#include <json.hpp>
using json = nlohmann::json;
class Student {
public:
std::string name;
int age;
std::vector<std::string> hobbies;
Student() {}
Student(std::string n, int a, std::vector<std::string> h) : name(n), age(a), hobbies(h) {}
json toJson() const {
return {
{"name", name},
{"age", age},
{"hobbies", hobbies}
};
}
};
int main() {
std::vector<Student> students {
{"Tom", 19, {"soccer", "basketball"}},
{"Lucy", 20, {"reading", "swimming"}},
{"Jack", 21, {"music", "travelling"}}
};
json j;
for (auto student : students) {
j["students"].push_back(student.toJson());
}
std::cout << j.dump() << std::endl;
return 0;
}

上面的代碼定義了一個Student類,它有三個成員變量:名字、年齡和愛好,還定義了一個toJson()方法,將Student對象轉化為JSON格式。

在主函數(shù)中,我們創(chuàng)建了一個保存Student對象的vector,然后使用for循環(huán)遍歷vector,將每個Student對象序列化為JSON格式后,添加到json對象中。最后使用dump()方法將json對象轉化為字符串并輸出。

運行以上代碼,可以得到如下輸出:

{
"students": [
{
"age": 19,
"hobbies": [
"soccer",
"basketball"
],
"name": "Tom"
},
{
"age": 20,
"hobbies": [
"reading",
"swimming"
],
"name": "Lucy"
},
{
"age": 21, 
"hobbies": [
"music",
"travelling"
],
"name": "Jack"
}
]
}

可以看到,輸出的JSON格式完整地包含了每個學生的屬性信息,包括名字、年齡和愛好。這個例子展示了如何在C++中使用json庫序列化復雜類為JSON格式,使得數(shù)據能夠被方便地傳輸和存儲。