标签:json和plist
一、.json加载,一般通过std::string data = FileUtils::getInstance()->getStringFromFile(filename); 通过文本rapidjson::Document doc;
doc.Parse<rapidjson::kParseDefaultFlags>(data.c_str()); 解析data。
解析之后doc应该是一个数组形式的,而且是一个二维数组(或者说是一个矩阵形式)。
如果解析没有错误,可以通过doc.size()取得总行数,然后通过rapidjson::Value &v=doc[i]取得每一列的值,它也是一个数组,v.size()取得总列数,通过const auto& value = v[index];取得具体的值,这个值可能是NULL,可能是int,可能是string,可以通过value.IsNull()、value.IsString()、value.IsInt()判断并通过value.GetString()或value.GetInt()等获取该值
二、.plist加载,一般通过ValueMap dict = FileUtils::getInstance()->getValueMapFromFile(filename);获取最外层的ValueMap,该valuemap里面可以嵌套其他valuemap,获取内部嵌套的其他valuemap,可以这样获取,auto dataIter = dict.find("data"),(此时dataIter相当于一个Value),通过判断if(dataIter != dict.cend()&&dataIter->second.getType()==Value::Type::MAP){const auto& data = dataIter->second.asValueMap();}
本文出自 “每天进步一点点” 博客,请务必保留此出处http://568464209.blog.51cto.com/7726521/1708221
cocos2dx中.json和.plist文件格式加载的不同
标签:json和plist
原文地址:http://568464209.blog.51cto.com/7726521/1708221