rapidjson解析json代碼實例
直接看代碼:
#include <iostream>#include <stdio.h>#include<unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<sstream>// 請自己下載開源的rapidjson#include "rapidjson/prettywriter.h"#include "rapidjson/rapidjson.h"#include "rapidjson/document.h"#include "rapidjson/stringbuffer.h"#include "rapidjson/writer.h"#include "rapidjson/memorystream.h"using namespace std;using rapidjson::Document;using rapidjson::StringBuffer;using rapidjson::Writer;using namespace rapidjson;string getStringFromJson(const string &jsStr, const string &strKey){ Document document; if (document.Parse(jsStr.c_str()).HasParseError() || !document.HasMember(strKey.c_str())) { return ""; } const rapidjson::Value &jv = document[strKey.c_str()]; return jv.GetString();}int main(int argc, char *argv[]){ string s = "{/"code/":0,/"msg/":/"ok/"}"; cout << s << endl; cout << getStringFromJson(s, "msg") << endl; return 0;}
結果:
{"code":0,"msg":"ok"}
ok
注意:
1. 如果不進行document.Parse(jsStr.c_str()).HasParseError()
判斷,則很容易core dump
2. 如果不進行!document.HasMember(strKey.c_str())
判斷,則很容易core dump
3. code的是為0,是整數,如果調用上述getStringFromJson,會core dump,此時應該用return jv.GetInt();
OK,不多說,人生苦短,我愛rapidjson
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接
新聞熱點
疑難解答
圖片精選