C++ 是一種面向對象的編程語言,它的優點之一是可以輕松地解析 JSON 數據。JSON 是一種輕量級的數據交換格式,常用于客戶端和服務器之間的數據傳輸。C++ 的 JSON 解析庫比較多,下面簡單介紹幾個常用的庫。
// 使用 JSON for Modern C++ 解析 JSON #include <nlohmann/json.hpp> #include <iostream> using json = nlohmann::json; int main() { std::string str = "{\"name\":\"Tom\",\"age\":20}"; json j = json::parse(str); std::cout << "Name: " << j["name"] << std::endl; std::cout << "Age: " << j["age"] << std::endl; return 0; }
以上代碼使用 JSON for Modern C++ 解析 JSON 數據,首先需要在代碼中引入 nlohmann/json.hpp 頭文件,然后使用 json 類的 parse 函數解析 JSON 數據。可以通過類似字典的方式訪問 JSON 數據中的鍵值對。
// 使用 RapidJSON 解析 JSON #include <rapidjson/reader.h> #include <iostream> using namespace rapidjson; class MyHandler : public BaseReaderHandler<UTF8<>> { public: bool String(const Ch* str, SizeType length, bool) { std::cout << str << std::endl; return true; } }; int main() { std::string str = "{\"name\":\"Tom\",\"age\":20}"; MyHandler handler; Reader reader; StringStream ss(str.c_str()); reader.Parse(ss, handler); return 0; }
以上代碼使用 RapidJSON 解析 JSON 數據,需要引入 rapidjson/reader.h 頭文件,并定義一個繼承自 BaseReaderHandler 模板的處理器類。在處理器中實現 String 函數即可解析字符串類型的 JSON 數據。然后定義一個 Reader 對象和一個 StringStream 對象,分別用來解析 JSON 數據和將字符串轉換為流。最后使用 reader.Parse 函數解析 JSON 數據,并將處理器傳入該函數。
總之,C++ JSON 解析庫的使用非常簡單,可以根據數據類型和需求,選擇相對應的庫。