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

c 類轉(zhuǎn)換成json字符串

錢斌斌2年前9瀏覽0評論

在C語言中,我們經(jīng)常需要將類(class)轉(zhuǎn)換成JSON字符串。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,同時也易于機(jī)器解析和生成。

下面是一個簡單的C++類的定義:

class Person {
public:
string name;
int age;
string city;
};

我們要將該類轉(zhuǎn)換成JSON字符串,可以使用C++的一個第三方庫——nlohmann/json。該庫支持從C++對象生成JSON字符串,以及將JSON字符串解析成C++對象。

下面是將類轉(zhuǎn)換成JSON字符串的代碼:

#includeusing json = nlohmann::json;
Person person;
person.name = "Tom";
person.age = 25;
person.city = "New York";
json j;
j["name"] = person.name;
j["age"] = person.age;
j["city"] = person.city;
cout<< j.dump()<< endl;

在上述代碼中,我們首先定義了一個Person類的對象person,并為其賦值。然后,我們聲明了一個nlohmann/json對象j,并使用該對象的dump()方法將其轉(zhuǎn)換成JSON字符串。

輸出結(jié)果如下:

{
"name": "Tom",
"age": 25,
"city": "New York"
}

可以看到,輸出結(jié)果是一個符合JSON格式的字符串。

在實際應(yīng)用中,我們還可以使用nlohmann/json庫將JSON字符串解析成C++對象。例如:

string json_str = "{\"name\":\"Tom\",\"age\":25,\"city\":\"New York\"}";
json j = json::parse(json_str);
Person person;
person.name = j["name"].get();
person.age = j["age"].get();
person.city = j["city"].get();
cout<< person.name<< " "<< person.age<< " "<< person.city<< endl;

在上述代碼中,我們首先定義了一個符合JSON格式的字符串json_str,并聲明了一個nlohmann/json對象j,并使用該對象的parse()方法將其解析成C++對象。然后我們又定義了一個Person類的對象person,并從JSON對象j中取出相應(yīng)的屬性值,并賦值給person對象。最終輸出person對象的屬性值。

nlohmann/json庫是一個功能強(qiáng)大的C++ JSON庫,它可以輕松地將C++對象轉(zhuǎn)換成JSON字符串,從JSON字符串中解析出C++對象。如果您的C語言或C++項目需要用到JSON,建議嘗試一下這個庫。