rapidjson解析json代码实例以及常见的json core dump问题分享!

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对<计算机技术网(www.ctvol.com)!!>的支持。如果你想了解更多相关内容请查看下面相关链接

—-想了解rapidjson解析json代码实例以及常见的json core dump问题分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/482934.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐