在編程中,常常需要將C++代碼中的字典或者鍵值對轉換成JSON格式的數(shù)據(jù)。這里我們介紹一種簡單的方法:使用第三方庫。
// 首先需要引入json.hpp頭文件
#include "json.hpp"
#include <iostream>
#include <string>
#include <map>
using namespace std;
// 引入nlohmann命名空間
using json = nlohmann::json;
// 定義一個map,包含鍵值對
map<string, string> dict = {{"name", "Tom"}, {"age", "20"}, {"address", "Beijing"}};
int main() {
// 轉換成json對象
json j;
for (auto& iter : dict) {
j[iter.first] = iter.second;
}
// 輸出結果
cout << j.dump() << endl;
}
在這個例子中,我們使用了nlohmann/json庫,這是一個開源的C++ JSON庫,支持多種操作系統(tǒng)和平臺,具有小巧、快速和易于使用的特性。
接下來的代碼演示了如何從JSON格式的數(shù)據(jù)中提取出字典:
string json_str = R"({"name": "Tom", "age": 20, "address": "Beijing"})";
json j = json::parse(json_str);
// 轉換成字典
map<string, string> dict;
for (auto it = j.begin(); it != j.end(); ++it) {
if (it.value().is_string()) {
dict[it.key()] = it.value();
}
}
// 輸出結果
for (auto iter : dict) {
cout << iter.first << ": " << iter.second << endl;
}
以上代碼中,我們首先使用parse方法將JSON字符串解析為json對象,然后遍歷json對象,將所有string類型的值加入到字典中。
通過這種方法,我們可以輕松完成C++中字典和JSON格式之間的相互轉換,使得開發(fā)更加高效便捷。
上一篇vue 415錯誤
下一篇html完整的表格代碼