在開發過程中,我們會遇到需要讀寫json數據的情況。C++作為一門強類型的語言,提供了比較完善的json讀寫庫,我們可以方便地通過json的鍵值對來獲取數據,也可以將數據轉換成json格式存儲。
以下是一個讀取json文件的示例代碼:
#include <iostream> #include <fstream> #include <json/json.h> using namespace std; int main() { ifstream ifs("test.json"); Json::Reader reader; Json::Value root; if(!reader.parse(ifs, root)) { cout << "parse error" << endl; return -1; } string name = root["name"].asString(); int age = root["age"].asInt(); double score = root["score"].asDouble(); cout << name << endl; cout << age << endl; cout << score << endl; return 0; }
在這段代碼中,我們使用了C++的fstream庫來打開一個json文件,然后通過Json::Reader來解析json數據,并將解析結果存儲在Json::Value對象中。通過Json::Value對象我們可以方便地獲取數據,因為該對象提供了asInt、asDouble、asString等函數,可以根據json數據類型來獲取對應的值。
如果我們需要寫入json數據,可以使用Json::Value對象來創建需要的數據結構,然后將其轉換成json字符串,最后寫入到文件中。以下是一個將數據寫入json文件的示例代碼:
#include <iostream> #include <fstream> #include <json/json.h> using namespace std; int main() { Json::Value root; root["name"] = "張三"; root["age"] = 18; root["score"] = 95.5; cout << root.toStyledString() << endl; ofstream ofs("test.json"); ofs << root.toStyledString(); ofs.close(); return 0; }
在這段代碼中,我們首先創建了一個Json::Value對象,并添加了三個鍵值對。然后將該對象轉換成json字符串,并將其寫入到文件中。
通過這些示例代碼,我們可以看到C++讀寫json數據非常方便,只需要使用jsoncpp庫,并根據需要使用Json::Reader和Json::Value對象來實現。
上一篇vue pc商城京東