cocos2dx如何解析json

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:19 点击:

由于项目需要json格式解析,一开始没接触过 所以比较烦恼,不过现在都可以理解了,给大家分享学习一下,我用的cocos2dx版本是2.2.1

如下先添加头文件:

#include "HelloWorldScene.h"
#include "json_lib.h"
using namespace std;
USING_NS_CC;
这里写了两个函数

//这里为获取jsonvalue的值
CSJson::Value HelloWorld::getJsonFromFile(const char* fileName){  
	CSJson::Reader reader;  
	CSJson::Value jsValue;
	unsigned long ilength;
	//这里是将文件解析出来,付给pBuffer字符串(之前自己没接触过 没写这句搞得很头痛....)
	char* pBuffer = (char *)CCFileUtils::sharedFileUtils()->getFileData(getFullPath(fileName).c_str(), "r", &ilength);
	CCLog("%s",pBuffer);
	//这里将pBuffer的值付给jsValue值
	bool parseRet = reader.parse(pBuffer, jsValue, false);
	CCAssert(parseRet, "Read GridData Error~!!!!!!!!!");
	return jsValue;  
}  
第二个函数

//这里为获取资源路径
std::string HelloWorld::getFullPath(const char* path){  
	CCLOG(cocos2d::CCFileUtils::sharedFileUtils()->fullPathForFilename(path).c_str());
	return cocos2d::CCFileUtils::sharedFileUtils()->fullPathForFilename(path);  
}  

最后在init里面写上

        CSJson::Reader read;
	CSJson::Value myjson = getJsonFromFile("jsontest.json");//利用上面的函数生成一个json。  
	string name;
	int i=0;
	//这里为遍历整个jsonvalue的值
	for (CSJson::ValueIterator a=myjson.begin(); a!=myjson.end(); ++a) {
		
		CSJson::Value value=(CSJson::Value)*a;
		name=value["name"].asString();
		CCLOG("myjson:%s",name.c_str());
		CCLOG("leftBottom:%s",value["leftBottom"].asCString());
		CCLOG("leftTop:%s",value["leftTop"].asCString());
		CCLOG("rightBottom:%s",value["rightBottom"].asCString());
		CCLOG("rightTop:%s",value["rightTop"].asCString());
		CCLOG("position:%s",value["position"].asCString());
                //两种打印方式,可以选择上面字符是我的字段
		name=myjson[i]["name"].asString();
		CCLOG("myjson:%s",name.c_str());
		CCLOG("leftBottom:%s",myjson[i]["leftBottom"].asCString());
		CCLOG("leftTop:%s",myjson[i]["leftTop"].asCString());
		CCLOG("rightBottom:%s",myjson[i]["rightBottom"].asCString());
		CCLOG("rightTop:%s",myjson[i]["rightTop"].asCString());
		CCLOG("position:%s",myjson[i]["position"].asCString());
		i++;
	}

然后就可以打印出来了 ,祝你也能成功!!!


    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • cocos2d-x学习笔记(19)--label 、label atlas
    • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
    • Cocos2d-x学习(一):HelloWorld
    • cocos2dx在xcode下开发,编译到android上(2)
    • cocos2d 设置屏幕默认方向
    • Cocos2d-x 2.0 之 Actions “三板斧” 之一
    • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
    • cocos2d-x学习笔记(18)--游戏打包(windows平台)
    • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1