C++ 是一門強大的編程語言,而 JSON 是一種通用的數據格式,C++ 可以使用 json 來解析并處理數據。JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式,被廣泛應用于前后端數據交互。在 C++ 中,我們可以使用第三方庫來處理 JSON 數據,比如 RapidJSON、nlohmann/json 等等。
RapidJSON 是一個快速的 C++ JSON 解析器/生成器, 它跑得比其他大多數流行的 JSON 處理器都快。RapidJSON 支持 SAX & DOM 風格 API,文檔完備,而且容易于集成到其他項目中。我們可以通過以下代碼來解析 JSON:
#include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" #include <iostream> using namespace rapidjson; int main() { const char* json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; Document d; d.Parse(json); std::cout<< "Name: "<< d["name"].GetString()<< std::endl; std::cout<< "Age: "<< d["age"].GetInt()<< std::endl; std::cout<< "City: "<< d["city"].GetString()<< std::endl; return 0; }
nlohmann/json 是另一個 C++ JSON 處理庫,同樣也非常優秀。它是一個高效、現代的單頭文件 JSON 庫,易于使用且可移植。我們可以通過以下代碼來解析 JSON:
#include <iostream> #include <nlohmann/json.hpp> using json = nlohmann::json; int main() { json j = R"( { "name": "John", "age": 30, "city": "New York" } )"_json; std::cout<< "Name: "<< j["name"]<< std::endl; std::cout<< "Age: "<< j["age"]<< std::endl; std::cout<< "City: "<< j["city"]<< std::endl; return 0; }
總而言之,在 C++ 中,我們可以使用 RapidJSON 或 nlohmann/json 這樣的第三方庫來解析 JSON 數據。這兩個庫都非常優秀,具有高效、易用、靈活等優點,能夠滿足我們對 JSON 數據處理的需求。