色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 類轉(zhuǎn)化json

將C++類轉(zhuǎn)化成JSON是一項(xiàng)重要的任務(wù)。JSON是JavaScript Object Notation的縮寫,是可讀性強(qiáng)的文本格式,適用于數(shù)據(jù)交換。 在C++中,有許多類可以進(jìn)行JSON轉(zhuǎn)化,這里介紹使用jsoncpp庫的方法。

#include#include#includeclass Person{
public:
std::string name;
int age;
std::vectorhobbies;
};
int main() {
//創(chuàng)建Person對(duì)象
Person person1;
person1.age = 20;
person1.name = "Lucy";
person1.hobbies.emplace_back("reading");
person1.hobbies.emplace_back("swimming");
//將Person對(duì)象轉(zhuǎn)成JSON字符串
Json::Value root;
root["name"] = person1.name;
root["age"] = person1.age;
for(const auto& hobby : person1.hobbies){
root["hobbies"].append(hobby);
}
Json::StyledWriter writer;
std::string jsonString = writer.write(root);
//打印JSON字符串
std::cout<< jsonString<< std::endl;
//將JSON字符串轉(zhuǎn)成Person對(duì)象
Json::Value jsonValue;
Json::Reader reader;
reader.parse(jsonString, jsonValue);
Person person2;
person2.name = jsonValue["name"].asString();
person2.age = jsonValue["age"].asInt();
for (int i = 0; i< jsonValue["hobbies"].size(); ++i) {
person2.hobbies.emplace_back(jsonValue["hobbies"][i].asString());
}
//比較兩個(gè)Person對(duì)象
if(person1.age == person2.age && person1.name == person2.name && person1.hobbies == person2.hobbies){
std::cout<< "Two persons are the same."<< std::endl;
}
return 0;
}

代碼中首先定義了Person類,有名字、年齡和愛好三個(gè)屬性,其中愛好是字符串?dāng)?shù)組類型。 然后,創(chuàng)建了一個(gè)Person對(duì)象person1,使用Json::Value將其轉(zhuǎn)成JSON字符串,并打印字符串。再將JSON字符串轉(zhuǎn)回Person對(duì)象person2,最后比較兩個(gè)Person對(duì)象是否相同。