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

网站导航html外贸简单网站建设

网站导航html,外贸简单网站建设,wordpress 删除作者信息,手机网站怎么制作软件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.hkea.cn/news/14375879/

相关文章:

  • 柳州专业网站建设加盟什么是网站的备案号
  • 互联网营销常用网站高校宣传网站建设
  • 找家里做的工作上哪个网站中高风险地区名单
  • 湖口网站建设小众网站论文
  • 汇算清缴在哪个网站做微网站模板怎么用
  • 网站做弹窗广告怎么做外围网站的代理
  • 网站建设推广岗位深圳网站开发
  • 湖北建站管理系统信息黑色网站
  • 免费淘宝客网站模板wordpress添加自定义导航
  • phpmysql网站开发项目式教程南昌百度快速排名优化
  • 90设计网站是不是没有视频模板有服务器如何做网站
  • 网站域名可以改么网站建设与企业发展
  • 朔州网站建设哪家便宜免费域名分发
  • 河北省建设资格执业中心网站常州免费做网站
  • 网站备案信息传商城网站建设要求
  • 最简单的免费网站制作模板济南网站建设seo优化
  • 桓台新城建设有限公司网站图文素材库免费
  • 泰安建设银行网站嘉定华亭网站建设
  • 长治哪家公司做网站好湛江建站程序
  • 麦当劳的网站优化建议介绍几个有趣的网站
  • 互联网获客seo关键词查询工具
  • 建设一个网站需要多久ui设计工资
  • 有哪些做的好的营销型网站大连app开发多少钱
  • 自己网站的关键词怎么改毕业设计做视频网站设计
  • 戚墅堰做网站肇庆网络推广
  • 禅城网站建设哪家好电子商务网站是什么意思
  • 公司设计网站有什么好处兰州网站建设哪里好
  • 小说网站建设多少钱建网站费用
  • 网站界面版式互联网如何做推广
  • 哪个旅游网站做的最好哈尔滨专门做网站