Cocos2d-x 2.2.2 如何读取数据编辑器导出的JSON?
之前的CSJsonDictionary不存在了
请看 2.2.2 版本里面的 scenetest,这次把每个组件都分开了,里面有数值组件的使用方法。
同问,请问楼主解决了吗?
能不能把方法附一下
参考这个方法读取
bool CCComAttribute::parse(const std::string &jsonPath)
{
bool bRet = false;
unsigned long size = 0;
unsigned char pBytes = NULL;
do {
pBytes = cocos2d::CCFileUtils::sharedFileUtils()->getFileData(jsonPath.c_str(), “r”, &size);
CC_BREAK_IF(pBytes == NULL || strcmp((char)pBytes, “”) == 0);
std::string load_str((const char*)pBytes, size);
CC_SAFE_DELETE_ARRAY(pBytes);
_doc.Parse<0>(load_str.c_str());////////////////////////////_doc.Parse这一个函数是解析方法,解析后,其中_doc是 rapidjson::Document _doc;类型的一个全局变量
CC_BREAK_IF(_doc.HasParseError());
bRet = true;
} while (0);
return bRet;
}
解析后可以通过调用
DICTOOL->getStringValue_json(_doc, key);//_doc是存放解析后数据的对象。key是你想要获取到的内容的关键字
DICTOOL->getBooleanValue_json(_doc, key);
DICTOOL->getFloatValue_json(_doc, key);
…
等方法获取值。
谢谢基本解决,还有个问题想请教下:
DICTOOL->getIntValue_json(_doc, key);
如果这个key没有value,返回的是"null",用getIntValue_json读就会报错了,
不知道有没有哪个接口能够判断key的value是够是空值,不然只能在json表里写个特殊的数值了
key是空的话自己就判断了
比如
if(key!=null)
{
DICTOOL->getIntValue_json(_doc, key);
}
value的值是空的话可能是用的方法不对。你断点查看下数据的类型,是否是int。
你好,图片中的楼上的代码,但是出编译不通过,麻烦看一下看是什么原因
这个方法可能在你的版本更名了。