Cocos2d-x的生成Json文件的方法(续)

页面导航:首页 > 网络编程 > JavaScript > Cocos2d-x的生成Json文件的方法(续)

Cocos2d-x的生成Json文件的方法(续)

来源: 作者: 时间:2016-02-20 09:49 【

1、JsonMake类 h include cocos2d h include cocos2d external json document h include cocos2d external json writer h include cocos2d external json stringbuffer hUSING_NS_CC;

 

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, 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、使用方法

将生成的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}]}


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<