Method for generating a Json file for a Cocos2d-x (continued)
1. JsonMake class
//.h#include cocos2d.h#include ../cocos2d/external/json/document.h#include ../cocos2d/external/json/writer.h#include ../cocos2d/external/json/stringbuffer.hUSING_NS_CC;using namespace rapidjson;class JsonMake : public Ref{public: CREATE_FUNC(JsonMake); virtual bool init(); std::string getJsonMyBaodanMain();};
//.cpp#include JsonMake.hbool 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, man, allocator); object4.PushBack(object1,allocator); object4.PushBack(object2,allocator); object4.PushBack(object3,allocator); document.AddMember(info, object4, allocator); StringBuffer buffer; rapidjson::Writer
writer(buffer); document.Accept(writer); log(%s,buffer.GetString()); return StringUtils::format(%s,buffer.GetString());}
2. Usage
Save the generated json file locally
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. Results
//json{info:[{Name:Yuxikuo,Age:18,Sex:man},{Name:WangDongGe,Age:32,Sex:woman},{Name:zhanhong,Age:20,Sex:man}]}