Cocos2d-3.x_读取json文件

来源:互联网 发布:软件定义世界 编辑:程序博客网 时间:2024/04/30 22:19

测试的data.json文件的内容如下:

[{"name":"zhangsan", "age":20}, {"name":"lisi", "age":30}]
#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"USING_NS_CC;class HelloWorld : public cocos2d::Layer{public:    static cocos2d::Scene* createScene();    virtual bool init();void readJsonByCocosAPI();    CREATE_FUNC(HelloWorld);private:LabelTTF *pLabel;};#endif // __HELLOWORLD_SCENE_H__
#include "HelloWorldScene.h"#include "json/document.h"Scene* HelloWorld::createScene(){    auto scene = Scene::create();    auto layer = HelloWorld::create();    scene->addChild(layer);    return scene;}bool HelloWorld::init(){    if ( !Layer::init() )    {        return false;    }        Size visibleSize = Director::getInstance()->getVisibleSize();    Vec2 origin = Director::getInstance()->getVisibleOrigin();pLabel = LabelTTF::create("", "Arial", 30);pLabel->setPosition(visibleSize/2.0);this->addChild(pLabel);this->readJsonByCocosAPI();    return true;}void HelloWorld::readJsonByCocosAPI(){rapidjson::Document doc;doc.Parse<0>(FileUtils::getInstance()->getStringFromFile("data.json").c_str());// 获得第一个对象的name和age的属性int index = 0;const char *ch = doc[index]["name"].GetString();int iage = doc[index]["age"].GetInt();std::ostringstream str;str << "name:";str << ch;str << ",";str << "age:";str << iage;pLabel->setString(str.str());// 遍历json数组for (int i = 0; i < doc.Size(); i ++){const char *name= doc[i]["name"].GetString();int age = doc[i]["age"].GetInt();log("name:%s, age:%d", name, age);}}



0 0
原创粉丝点击