加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

本文承接自前文: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/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、结果

//json
{"info":[{"Name":"Yuxikuo","Age":"18","Sex":"man"},{"Name":"WangDongGe","Age":"32","Sex":"woman"},{"Name":"zhanhong","Age":"20","Sex":"man"}]}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读