cpprest是Microsoft開(kāi)發(fā)的一個(gè)C++庫(kù),可以幫助我們更方便地構(gòu)建RESTful API,同時(shí)也支持JSON數(shù)據(jù)格式的解析和生成。在本文中,我們將重點(diǎn)介紹cpprest庫(kù)中用于操作JSON數(shù)據(jù)的Json::Value類(lèi)。
Json::Value類(lèi)是cpprest庫(kù)中用于表示JSON數(shù)據(jù)的核心類(lèi),可以用來(lái)解析JSON數(shù)據(jù)和生成JSON數(shù)據(jù)。下面是一個(gè)使用Json::Value類(lèi)解析JSON數(shù)據(jù)的例子:
#include#include using namespace std; using namespace web; using namespace json; int main() { std::wstring jsonStr = L"{\"name\":\"Jack\",\"age\":18}"; wstring_convert<codecvt_utf8_utf16<wchar_t>> converter; string utf8Str = converter.to_bytes(jsonStr); Json::Value root; Json::Reader reader; bool success = reader.parse(utf8Str, root); if (success) { string name = root["name"].asString(); int age = root["age"].asInt(); cout << "name: " << name << endl; cout << "age: " << age << endl; } else { cout << "parse error" << endl; } return 0; }
上述代碼中,我們首先將一個(gè)JSON字符串轉(zhuǎn)換為UTF-8編碼的字符串,然后使用Json::Reader類(lèi)解析JSON數(shù)據(jù)。如果解析成功,就可以通過(guò)Json::Value對(duì)象的[]運(yùn)算符來(lái)訪問(wèn)其中的字段。
如果我們要生成一個(gè)JSON對(duì)象,可以使用Json::Value類(lèi)的以下方式:
#include#include using namespace std; using namespace web; using namespace json; int main() { Json::Value root; root["name"] = "Jack"; root["age"] = 18; Json::FastWriter writer; string json = writer.write(root); cout << json << endl; return 0; }
上述代碼中,我們首先創(chuàng)建了一個(gè)Json::Value對(duì)象,并通過(guò)[]運(yùn)算符為其添加了兩個(gè)字段“name”和“age”。然后使用Json::FastWriter類(lèi)將Json::Value對(duì)象轉(zhuǎn)換為JSON字符串。
總之,Json::Value類(lèi)是cpprest庫(kù)中用于操作JSON數(shù)據(jù)的核心類(lèi),可以幫助我們更加方便地解析和生成JSON數(shù)據(jù)。