在cocos2d-x中,我們可以通過讀取json文件來實現游戲的多語言支持、游戲配置信息的存儲等功能。下面是一個簡單的讀取json文件的示例。
std::string filePath = FileUtils::getInstance()->fullPathForFilename("config.json");
std::string fileData = FileUtils::getInstance()->getStringFromFile(filePath);
rapidjson::Document doc;
doc.Parse<0>(fileData.c_str());
if(doc.IsObject())
{
if(doc.HasMember("name"))
{
CCLOG("%s", doc["name"].GetString());
}
if(doc.HasMember("version"))
{
CCLOG("%d.%d", doc["version"]["major"].GetInt(), doc["version"]["minor"].GetInt());
}
}
首先,我們需要使用FileUtils::getInstance()->fullPathForFilename()方法獲取json文件的完整路徑。然后,使用FileUtils::getInstance()->getStringFromFile()方法讀取文件的內容(這里使用了std::string類型來保存文件內容)。接著,我們使用rapidjson庫的Document類來解析json文件。最后,根據json數據的結構,我們可以通過Document類的HasMember()和GetString()/GetInt()等方法來獲取需要的數據。
需要注意的是,rapidjson庫是c++的json解析庫,性能較好,但使用起來比較繁瑣。如果只是簡單的讀取json文件,可以考慮使用第三方json庫,比如cocos2d-x自帶的cocos2d::FileUtils::getValueMapFromFile()方法。