在C++中高效處理JSON數據,可以使用一些流行的JSON庫,如RapidJSON、nlohmann/json等
首先,需要安裝RapidJSON庫。你可以從GitHub上下載源代碼:https://github.com/Tencent/rapidjson
將下載的源代碼解壓并將include
文件夾添加到項目的頭文件搜索路徑中。
接下來,我們將使用RapidJSON庫來解析和生成JSON數據。
示例1:解析JSON字符串
#include<iostream>
#include<string>
#include "rapidjson/document.h"
int main() {
std::string json_str = R"({"name": "John", "age": 30, "city": "New York"})";
rapidjson::Document document;
if (document.Parse(json_str.c_str()).HasParseError()) {
std::cerr << "Error parsing JSON string."<< std::endl;
return 1;
}
std::string name = document["name"].GetString();
int age = document["age"].GetInt();
std::string city = document["city"].GetString();
std::cout << "Name: "<< name << ", Age: "<< age << ", City: "<< city<< std::endl;
return 0;
}
示例2:生成JSON字符串
#include<iostream>
#include<string>
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
int main() {
rapidjson::Document document;
document.SetObject();
document.AddMember("name", "John", document.GetAllocator());
document.AddMember("age", 30, document.GetAllocator());
document.AddMember("city", "New York", document.GetAllocator());
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
document.Accept(writer);
std::string json_str = buffer.GetString();
std::cout << "Generated JSON string: "<< json_str<< std::endl;
return 0;
}
這些示例展示了如何使用RapidJSON庫在C++中解析和生成JSON數據。當然,還有其他JSON庫可供選擇,但RapidJSON是一個非常流行且性能良好的庫。在處理大量JSON數據時,請確保選擇適合你項目需求的庫。