微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocos2d-x读取并解析json文件的方法[CSJson]

1.我们准备了一个json文件(test.json),在resource下面:

{
    "data": {
        "lastArea": {
            "areaId": 200,"label": 1,"name": "我是区服","state": 1
        },"topArea": {
            "areaId": 10,"label": 0,"total": 2
    },"rc": 0
}

2.我们在onEnter函数中加入如下代码
	const char *des = NULL;
    std::string jsonpath;
    cs::CSJsonDictionary *jsonDict = NULL;
    jsonpath = CCFileUtils::sharedFileUtils()->fullPathForFilename("test.json");
    unsigned long size = 0;
    des = (char*)(CCFileUtils::sharedFileUtils()->getFileData(jsonpath.c_str(),"r",&size));
	if(NULL == des || strcmp(des,"") == 0)
	{
		printf("read json file[%s] error!\n","test.json");
	}
	CSJson::Reader cReader;
	CSJson::Value value;
   if(!cReader.parse(std::string(des),value,false))
   {cclog("%s",cReader.getFormattedErrorMessages().data());}
这样,我们的value对象中就存储到了json里面的数据。我们则可以取里面的数据。取法如下
	cclog("areadId:%d,label:%d,name:%s,state:%d",value["data"]["lastArea"]["areaId"].asInt(),value["data"]["lastArea"]["label"].asInt(),value["data"]["lastArea"]["name"].asCString(),value["data"]["lastArea"]["state"].asInt());

原文地址:https://www.jb51.cc/cocos2dx/344954.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐