C字典和JSON都是常見的數據格式。其中,C字典是一種以鍵值對形式組織數據的數據結構,而JSON是一種輕量級的數據交換格式。在實際開發中,我們經常需要將C字典轉換成JSON格式或者將JSON格式轉換成C字典。那么,接下來就讓我們來學習一下如何進行C字典和JSON之間的轉換吧!
將C字典轉換成JSON格式的方法非常簡單,我們只需要使用JSON庫中的函數就可以了。具體的代碼如下:
// 導入JSON庫 #include "json/json.h" // 定義C字典 map<string, string> cDict = { {"name", "jerry"}, {"age", "22"} }; // 轉換成JSON格式 Json::Value jsonValue; for(auto& iter: cDict){ jsonValue[iter.first] = iter.second; } const string jsonString = jsonValue.toStyledString(); cout << jsonString << endl;
上述代碼中,我們利用了JSON庫中的toStyledString()函數將C字典轉換成JSON格式,并輸出結果。
接下來,我們將介紹如何將JSON格式轉換為C字典。同樣地,使用JSON庫中的函數也可以很容易地實現。具體的代碼如下:
// 導入JSON庫 #include "json/json.h" // 定義JSON字符串 const string jsonString = "{\"name\": \"jerry\", \"age\": \"22\"}"; // 轉換成C字典 map<string, string> cDict; Json::Value jsonValue; Json::Reader reader; if(reader.parse(jsonString, jsonValue)){ if(jsonValue.isObject()){ for(Json::Value::const_iterator iter = jsonValue.begin(); iter != jsonValue.end(); iter++){ string key = iter.key().asString(); string value = iter->asString(); cDict[key] = value; } } } // 輸出結果 for(const auto& iter: cDict){ cout << iter.first << ": " << iter.second << endl; }
以上代碼中,我們使用了JSON庫中的Reader類的parse()函數將JSON字符串轉換成JSON格式,再利用循環遍歷JSON格式中的鍵值對,將其組織成C字典并輸出結果。
以上就是C字典和JSON之間的轉換方法,希望對大家能有所幫助。
上一篇vue 的多選框
下一篇c#解析json的類