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

c 類轉為json字符串

林子帆1年前9瀏覽0評論

在進行前后端數據交互的過程中,Json已經成為了一種非常流行的數據格式。在很多情況下我們需要將一個C++類實例轉化為Json字符串的形式來進行數據傳輸。以下是一個示例代碼:

#include <string>
#include <list>
#include <sstream>
#include <boost/any.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
using boost::property_tree::ptree;
class Person {
public:
std::string name;
int age;
std::listhobbies;
ptree to_ptree() const {
ptree pt;
pt.put("name", name);
pt.put("age", age);
ptree lst;
for(auto it : hobbies) {
ptree item;
item.put("", it);
lst.push_back(std::make_pair("", item));
}
pt.add_child("hobbies", lst);
return pt;
}
};
int main() {
Person p;
p.name = "Jack";
p.age = 30;
p.hobbies.push_back("reading");
p.hobbies.push_back("traveling");
p.hobbies.push_back("photography");
ptree json = p.to_ptree();
std::stringstream ss;
boost::property_tree::json_parser::write_json(ss, json, false);
std::string jsonString = ss.str();
return 0;
}

上述代碼中,我們定義了一個Person類,其中包含了三個成員變量,分別代表了姓名、年齡和愛好列表。我們為Person類定義了一個函數to_ptree(),用來將Person實例轉化為ptree樹的形式,我們使用boost的property_tree庫來進行這一操作。最后我們將生成的ptree樹轉化為Json字符串并輸出。

to_ptree()函數中,我們首先為ptree樹的根節點設置了三個子節點,分別是"name"、"age"和"hobbies"。接著我們遍歷了"hobbies"列表并將每個愛好都加入了ptree樹中。這里使用了ptree樹的add_child()和push_back()方法,其中add_child()用來將一個子樹加入到父樹中,push_back()則是將一個新的節點加入到已有的列表末尾。

使用以上的示例代碼,我們可以將Person類實例轉化為Json字符串形式,以此來實現在C++和其他語言之間進行數據傳輸。