大佬教程收集整理的这篇文章主要介绍了RapidJson 读写数据到文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1. 什么 Rapidjson ?
2. 这里 有个教程 :
3. 好了,这个是我自己写的:
#include "rapidjson/rapidjson.h" #include "rapidjson/document.h" #include "rapidjson/reader.h" #include "rapidjson/writer.h" #include "rapidjson/Stringbuffer.h" #include <iostream> #include <fstream> #define psln(X) std::cout << #x " = " << (X) << std::endl using namespace rapidjson; class Myrapidjson { public: Myrapidjson(){}; ~Myrapidjson(){}; public: int read(const char* jsonfilE);//step:1 int parse();//step:2 int Find(const char* find); int AddMember(const char* Key,const char* value); int convert_to_String(); int ReLoad(const char* jsonfilE); private: rapidjson::Document doc; std::string StringFromStream; std::ifstream in; StringBuffer buffer; // in rapidjson/Stringbuffer.h }; int Myrapidjson::read(const char* jsonfilE){ in.open(jsonfile,std::ifstream::in); if (!in.is_open()) return -1; std::string line; while (getline(in,linE)) { StringFromStream.append(line + "\n"); } in.close(); parse(); return 0; } int Myrapidjson::parse(){ doc.Parse<0>(StringFromStream.c_str()); if (doc.HasParseError()) { rapidjson::ParseErrorCode code = doc.GetParseError(); psln(codE); return -1; } return 0; } int Myrapidjson::Find(const char* find){ rapidjson::Value::ConstMemberIterator itr = doc.FindMember(find); if (itr != doc.MemberEnd()){ printf("%s\n",itr->value.GetString()); } return 0; } int Myrapidjson::AddMember(const char* key,const char* values) { using rapidjson::Value; Value & v = doc["DictVersion"]; if (v.IsInt()) { psln(v.GeTint()); } Value & contents = doc["content"]; if (contents.IsArray()) { for (size_t i = 0; i < contents.Size(); ++i) { Value & v = contents[i]; assert(v.IsObject()); if (v.HasMember("key") && v["key"].IsString()) { psln(v["key"].GetString()); } if (v.HasMember("value") && v["value"].IsString()) { psln(v["value"].GetString()); } } } psln("add a value into array"); Value Key(rapidjson::kStringTypE); Key.SetString(key,doc.GetAllocator()); Value StrValue(rapidjson::kStringTypE); StrValue.SetString(values,doc.GetAllocator()); Value item(Type::kObjectTypE); item.AddMember(Key,StrValue,doc.GetAllocator()); contents.PushBACk(item,doc.GetAllocator()); //------- convert_to_String(); return 0; } int Myrapidjson::convert_to_String(){ Writer<StringBuffer> writer(buffer); // in rapidjson/writer.h doc.Accept(writer); psln(buffer.GetString()); return 0; } int Myrapidjson::reLoad(const char* jsonfilE){ FILE* file = fopen(jsonfile,"wb"); if (filE) { fputs(buffer.GetString(),filE); fclose(filE); }else{ psln("ReLoad Failed"); return -1; } return 0; } int main(int argc,char const *argv[]) { Myrapidjson m_test; m_test.read("test.json"); m_test.AddMember("key","word7"); m_test.ReLoad("test.json"); return 0; }转载请注明出处,谢谢!
以上是大佬教程为你收集整理的RapidJson 读写数据到文件全部内容,希望文章能够帮你解决RapidJson 读写数据到文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。