在cocos2dx2.2.2以上的版本 将解析json的类由原先的rapidjson 官方文档显示是效率要比原先的json的效率更高 在2.2.2版本以前解析json的确是一个很耗时的工作 在cocos2dx2.2.2以上版本 将所有功能封装在rapidjson中 又将最主要的功能封装在rapidjson中的document.h中 所以document的对象取代了Reader 对象
头文件的改动:
#include"cocos-ext.h"
USING_NS_CC_EXT;
using namespace rapidjson;
/读取一个json文件 并将其转换为Value
void CCAnalysisJeson::ReadJson(const char * filename)
{
unsigned long size;
const char* file=(char*)CCFileUtils::sharedFileUtils()->getFileData(filename,"r",&size);
CCLOG("%s",file);
doc.Parse<kParseDefaultFlag>(file);
Value & v_playername=doc["palyername"];
CCLOG("%s",v_playername.GetString)
}
if (v.IsArray())
{
for (unsigned int i = 0; i< v.Size(); ++i)
{
const rapidjson::Value &val = v[i];
log("%s",val.GetString());
}
}
<span style="font-family: Arial, Helvetica, sans-serif;">这里是判断得到的Value是否是一个数组 v.size返回的是unsigned int 类型 </span>