在C++中,有多種庫可以用來處理JSON數據。這里我們將介紹一個流行的庫——nlohmann/json。它是一個高性能、易于使用的JSON庫,支持序列化和反序列化操作。
首先,你需要安裝nlohmann/json庫。你可以通過包管理器(如vcpkg)或直接從GitHub下載源代碼:https://github.com/nlohmann/json
安裝完成后,在你的C++項目中包含頭文件#include <nlohmann/json.hpp>
。
下面是一些基本示例,展示如何使用nlohmann/json庫處理JSON數據:
#include<iostream>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
// 創建一個空的JSON對象
json j;
// 向JSON對象添加鍵值對
j["name"] = "Alice";
j["age"] = 30;
j["is_student"] = false;
// 輸出JSON對象
std::cout << j.dump(4)<< std::endl;
return 0;
}
#include<iostream>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
// JSON字符串
std::string json_str = R"({"name": "Bob", "age": 25, "is_student": true})";
// 解析JSON字符串
json j = json::parse(json_str);
// 訪問JSON對象的值
std::string name = j["name"];
int age = j["age"];
bool is_student = j["is_student"];
// 輸出結果
std::cout << "Name: "<< name << ", Age: "<< age << ", Is student: " << (is_student ? "Yes" : "No")<< std::endl;
return 0;
}
#include<iostream>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main() {
// JSON數組
std::string json_str = R"([{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}])";
// 解析JSON字符串
json j = json::parse(json_str);
// 遍歷JSON數組
for (const auto& item : j) {
std::string name = item["name"];
int age = item["age"];
std::cout << "Name: "<< name << ", Age: "<< age<< std::endl;
}
return 0;
}
更多關于nlohmann/json庫的信息和示例,請參考官方文檔:https://nlohmann.github.io/json/