在 C++ 中解析 JSON 數據,你可以使用第三方庫,例如 nlohmann/json
首先,確保你已經安裝了 nlohmann/json 庫。如果沒有,請訪問 https://github.com/nlohmann/json#integration 獲取安裝說明。
包含 json.hpp 頭文件:
#include<iostream>
#include <fstream>
#include<string>
#include "json.hpp"
using json = nlohmann::json;
using namespace std;
// 從文件讀取 JSON 數據
ifstream ifs("example.json");
json j = json::parse(ifs);
// 從字符串讀取 JSON 數據
string json_str = R"({"name": "John", "age": 30, "city": "New York"})";
json j = json::parse(json_str);
// 獲取 JSON 對象的鍵值對
string name = j["name"];
int age = j["age"];
string city = j["city"];
// 獲取 JSON 數組的元素
json arr = j["array"];
for (const auto& elem : arr) {
cout<< elem<< endl;
}
j["name"] = "Jane";
j["age"] = 25;
// 將 JSON 數據寫入文件
ofstream ofs("output.json");
ofs << j;
// 將 JSON 數據轉換為字符串
string json_str = j.dump();
這是一個完整的示例代碼:
#include<iostream>
#include <fstream>
#include<string>
#include "json.hpp"
using json = nlohmann::json;
using namespace std;
int main() {
// 從文件讀取 JSON 數據
ifstream ifs("example.json");
json j = json::parse(ifs);
// 訪問 JSON 數據的值
string name = j["name"];
int age = j["age"];
string city = j["city"];
// 修改 JSON 數據的值
j["name"] = "Jane";
j["age"] = 25;
// 將 JSON 數據寫入文件
ofstream ofs("output.json");
ofs << j;
return 0;
}
在這個示例中,我們從名為 example.json
的文件中讀取 JSON 數據,訪問其中的值,修改它們,然后將修改后的 JSON 數據寫入名為 output.json
的文件。