当前位置: 首页 > news >正文

高端网站建设公司怎么选湖北城乡建设部网站首页

高端网站建设公司怎么选,湖北城乡建设部网站首页,我们的社区手机在线观看,亿速云RapidJSON是腾讯开源的一个高效的C JSON解析器及生成器#xff0c;它是只有头文件的C库#xff0c;综合性能是最好的。 1. 安装 在NuGet中为项目安装tencent.rapidjson 2. 引用头文件 #include rapidjson/document.h #include rapidjson/memorystream.h #… RapidJSON是腾讯开源的一个高效的C JSON解析器及生成器它是只有头文件的C库综合性能是最好的。 1. 安装 在NuGet中为项目安装tencent.rapidjson 2. 引用头文件 #include rapidjson/document.h #include rapidjson/memorystream.h #include rapidjson/prettywriter.h 3. 头文件定义 添加测试json字符串和类型对应数组 // 测试json字符串 const char* strJson {\name\:\MenAngel\,\age\:23,\hobbys\:[\语文\,\数学\,\英语\,54],\scores\:{\数学\:\90.6\,\英语\:\100.0\, \语文\:\80.0\}};// 数据类型和 rapidjson的enum Type 相对应 static const char* kTypeNames[] { Null, False, True, Object, Array, String, Number }; 4.  修改JSON 内容 /// summary /// 修改JSON 内容 /// /summary void MyRapidJson::alterJson() {rapidjson::Document doc;doc.Parse(strJson);cout 修改前 strJson \n endl;// 修改内容rapidjson::Value::MemberIterator iter doc.FindMember(name);if (iter ! doc.MemberEnd())doc[name] 张三;iter doc.FindMember(age);if (iter ! doc.MemberEnd()){rapidjson::Value v1 iter-value;v1 40;}// 修改后的内容写入 StringBuffer 中rapidjson::StringBuffer buffer;rapidjson::Writerrapidjson::StringBuffer writer(buffer);doc.Accept(writer);cout 修改后 buffer.GetString() \n endl; }运行结果 {name:张三,age:40,hobbys:[语文,数学,英语,54],scores:{数学:90.6,英语:100.0,语文:80.0}} 5. 生成 json 数据 /// summary /// 生成JSON数据 /// /summary void MyRapidJson::createJson() {// 1.准备数据string name 王五;string gender boy;int age 23;bool student true;vectorstring hobbys { 语文,数学,英语 };mapstring, double scores { {语文,80},{数学,90},{英语,100} };//2.初始化DOMrapidjson::Document doc;rapidjson::Document::AllocatorType allocator doc.GetAllocator();doc.SetObject();// 添加数据/* 字符串添加 */ rapidjson::Value tempValue1;tempValue1.SetString(name.c_str(), allocator);doc.AddMember(name, tempValue1, allocator);rapidjson::Value tempValue2(rapidjson::kStringType);tempValue2.SetString(gender.c_str(), allocator);doc.AddMember(rapidjson::StringRef(gender), tempValue2, allocator);/* 数字类型添加 */doc.AddMember(age, age, allocator);/* bool 类型 */rapidjson::Value tempValueStu(rapidjson::kTrueType);tempValueStu.SetBool(student);doc.AddMember(rapidjson::StringRef(student), tempValueStu, allocator);/* Array 添加数据 */rapidjson::Value tempValue3(rapidjson::kArrayType);for (auto hobby : hobbys){rapidjson::Value hobbyValue(rapidjson::kStringType);hobbyValue.SetString(hobby.c_str(), allocator);tempValue3.PushBack(hobbyValue, allocator);}doc.AddMember(hobbys, tempValue3, allocator);/* Object 添加 */rapidjson::Value tempValue4(rapidjson::kObjectType);tempValue4.SetObject();for (auto score : scores){//rapidjson::Value scoreName(rapidjson::kStringType);//scoreName.SetString(score.first.c_str(), allocator);//tempValue4.AddMember(scoreName, score.second, allocator);// 方法二rapidjson::Value scoreName(rapidjson::kStringType);scoreName.SetString(score.first.c_str(), allocator);rapidjson::Value scoreValue(rapidjson::kStringType);char charValue[20];itoa(score.second, charValue,10);scoreValue.SetString(charValue, allocator);tempValue4.AddMember(scoreName, scoreValue, allocator);}doc.AddMember(scores, tempValue4, allocator);// 写入 StringBufferrapidjson::StringBuffer strBuffer;rapidjson::Writerrapidjson::StringBuffer writer(strBuffer);doc.Accept(writer);cout strBuffer.GetString() \n endl;string outFileName C:\\Users\\Administrator\\Desktop\\creatJson.txt;ofstream outfile(outFileName, std::ios::trunc);outfile strBuffer.GetString() endl;outfile.flush();outfile.close(); } 运行结果 {name:王五,gender:boy,age:23,student:true,hobbys:[语文,数学,英语],scores:{数学:90,英语:100,语文:80}} 6. json 数据解析 /// summary /// 查询json 内容 /// /summary void MyRapidJson::searchJson() {rapidjson::Document doc;if (doc.Parse(strJson).HasParseError()){std::cout json 解析错误 std::endl;return;}cout doc 的属性成员有 doc.MemberCount() 个! endl;vectorstring propertyName;int i 0;for (rapidjson::Value::MemberIterator iter doc.MemberBegin(); iter ! doc.MemberEnd(); iter){cout i 、 iter-name.GetString() is kTypeNames[iter-value.GetType()] endl;propertyName.push_back(iter-name.GetString());}cout endl;for (rapidjson::Value::MemberIterator iter doc.MemberBegin(); iter ! doc.MemberEnd(); iter){if (iter-value.GetType() rapidjson::kObjectType || iter-value.GetType() rapidjson::kArrayType)cout iter-name.GetString() : endl;else cout iter-name.GetString() : ;DfsDocument(std::move(iter-value));} }/// summary /// 遍历里面的内容 /// /summary /// param nameval/param void MyRapidJson::DfsDocument(rapidjson::Value val) {if (!val.GetType())return;switch (val.GetType()) {case rapidjson::kNumberType:cout val.GetInt() endl;break;case rapidjson::kStringType:cout val.GetString() endl;break;case rapidjson::kArrayType:for (rapidjson::Value::ValueIterator itr val.GetArray().begin();itr ! val.GetArray().end(); itr) {rapidjson::Value a;a *itr;DfsDocument(std::move(a));}break;case rapidjson::kObjectType:for (rapidjson::Value::MemberIterator itr val.GetObject().begin();itr ! val.GetObject().end(); itr) {cout itr-name.GetString() ;rapidjson::Value a;a itr-value;DfsDocument(std::move(a));}default:break;} } 运行结果 这里需要注意  object 类型json字符串中“数字类型” 需转为 “字符串”否则查询时会报错。 7.  rapidjson 的其他使用方法 /// summary /// json 属性 /// /summary void MyRapidJson::JsonAttribute() {rapidjson::Document doc;if (doc.Parse(strJson).HasParseError()){std::cout json 解析错误 std::endl;return;}// 成员判断if (doc.HasMember(hobbys) !doc[hobbys].Empty())cout doc[\hobbys\] is not empty! \n endl;elsecout doc[\hobbys\] 不存在。 \n endl;//7.Array的大小if (doc[hobbys].IsArray()){cout doc[\hobbys\].Capacity() \ Array的容量及大小\ doc[hobbys].Capacity() 项 endl;cout doc[\hobbys\].Size() \ Array的容量及大小\ doc[hobbys].Size() 项 endl;}// 字符串长度获取cout doc[name].GetString() 字符串长度 doc[name].GetStringLength() endl;//4.查询某个成员是否存在rapidjson::Value::MemberIterator iter doc.FindMember(scores);if (iter ! doc.MemberEnd()){cout iter-name.GetString() : endl;DfsDocument(std::move(iter-value));}elsecout Not Finded! endl;// 相同判断if (doc[name].GetString() string(MenAngel) doc[name] MenAngel strcmp(doc[name].GetString(),MenAngel) 0){cout 判断为相等 endl;}} 运行结果
http://www.w-s-a.com/news/989583/

相关文章:

  • 建设网站步骤是如何做自媒体和网站签约赚点击
  • 网站建设的闪光点网站 备案 拍照
  • 那些企业需要做网站九洲建设集团网站
  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份
  • 吉林省建设安全监督站网站wordpress 4.7.5下载
  • 网页制作视频的网站建设营销策划公司
  • 玉雕网站建设八点品牌设计公司招聘
  • 服务器可以自己的网站吗flash 网站 源码
  • 湖南做网站 搜搜磐石网络网站注册收入
  • 北京软件网站开发装修设计培训机构
  • 哪个网站能帮助做路书网站建设的技巧
  • 上海网站备案在哪里在国外怎么做网站
  • 做网站得花多钱乡村振兴网站建设
  • 站设计培训课程wordpress自动回复
  • 上海闵行区 网站建设永久免费crm软件下载
  • 天津营销网站建设公司排名台州网站排名公司
  • 环保网站 怎么做物流网站的功能与特色
  • 网站多久才会被收录服务器租用泰海
  • 电商网站建设合同模板临汾推广型网站建设
  • 天猫商务网站建设目的长春网站设计
  • 公司网站建设会议纪要昆山高端网站建设机构
  • 做消费网站流程深圳网站设计价格
  • 做电影网站怎么接广告中国最新军事新闻视频
  • 网站推广设计做哪些设置自动删除的wordpress
  • 东莞东坑网站设计专业网站制作设
  • 网站怎么做现场直播视频成都科技网站建设找
  • 个人网页设计步骤网站没有内容 能做优化吗