Cocos2d-x的生成Json文件的方法(续)
发布时间:2020-12-14 19:03:28 所属栏目:百科 来源:网络整理
导读:本文承接自前文: http://blog.csdn.net/yuxikuo_1/article/details/39155335 1、JsonMake类 //.h#include "cocos2d.h"#include "../cocos2d/external/json/document.h"#include "../cocos2d/external/json/writer.h"#include "../cocos2d/external/json/str
1、JsonMake类//.h #include "cocos2d.h" #include "../cocos2d/external/json/document.h" #include "../cocos2d/external/json/writer.h" #include "../cocos2d/external/json/stringbuffer.h" USING_NS_CC; using namespace rapidjson; class JsonMake : public Ref { public: CREATE_FUNC(JsonMake); virtual bool init(); std::string getJsonMyBaodanMain(); }; //.cpp #include "JsonMake.h" bool JsonMake::init() { bool bRet = false; do{ bRet = true; }while(0); return bRet; } std::string JsonMake::getJsonMyBaodanMain() { rapidjson::Document document; document.SetObject(); rapidjson::Document::AllocatorType& allocator = document.GetAllocator(); rapidjson::Value object1(rapidjson::kObjectType); rapidjson::Value object2(rapidjson::kObjectType); rapidjson::Value object3(rapidjson::kObjectType); rapidjson::Value object4(rapidjson::kArrayType); object1.AddMember("Name","Yuxikuo",allocator); object1.AddMember("Age","18",allocator); object1.AddMember("Sex","man",allocator); object2.AddMember("Name","WangDongGe",allocator); object2.AddMember("Age","32",allocator); object2.AddMember("Sex","woman",allocator); object3.AddMember("Name","zhanhong",allocator); object3.AddMember("Age","20",allocator); object3.AddMember("Sex",allocator); object4.PushBack(object1,allocator); object4.PushBack(object2,allocator); object4.PushBack(object3,allocator); document.AddMember("info",object4,allocator); StringBuffer buffer; rapidjson::Writer<StringBuffer> writer(buffer); document.Accept(writer); log("%s",buffer.GetString()); return StringUtils::format("%s",buffer.GetString()); } 2、使用方法将生成的json文件保存的本地 auto path = FileUtils::getInstance()->getWritablePath(); log("path = %s",path.c_str()); path.append("myBaodanMain.json"); FILE* fp = std::fopen(path.c_str(),"at+"); CCASSERT(fp != NULL,"file open error"); auto jsonMake = JsonMake::create(); auto str = jsonMake->getJsonMyBaodanMain(); auto length = str.length(); fwrite(str.c_str(),length,1,fp); fclose(fp); 3、结果
|