cocos2dx 3.2是一款非常流行的游戲引擎,支持多種平臺,開發游戲十分方便。其中一個重要的功能是json解析,可以方便地解析服務器返回的數據,實現客戶端與服務器之間的數據通信。
在cocos2dx 3.2中,可以使用cocos2d::FileUtils::getInstance()->getStringFromFile()函數將json文件讀入內存。需要注意的是,在使用該函數前需要先添加如下頭文件:
#include "json/rapidjson.h" #include "json/document.h"
接著,可以使用rapidjson庫提供的Document類解析json數據。其基本用法如下:
std::string jsonStr = FileUtils::getInstance()->getStringFromFile("data.json"); rapidjson::Document doc; doc.Parse<0>(jsonStr.c_str()); if(doc.HasParseError()) { log("GetParseError %s", doc.GetParseError()); } else { if(doc.IsObject() && doc.HasMember("name")) { const rapidjson::Value& nameVal = doc["name"]; if(nameVal.IsString()) { std::string nameStr = nameVal.GetString(); log("name is %s", nameStr.c_str()); } } }
上述代碼首先讀取名為“data.json”的json文件,并將其解析為Document對象。接著,通過使用HasParseError()函數判斷是否解析錯誤,如果解析錯誤,則通過log()函數輸出錯誤信息。如果解析無誤,則可以通過IsObject()和HasMember()函數判斷json對象中是否包含“name”屬性,并使用GetString()函數獲取其值。
綜上,cocos2dx 3.2中json解析十分方便,使用rapidjson庫提供的Document類可以快速解析json數據,方便實現與服務器之間的數據通信。
上一篇conf.json
下一篇vue vlog 電腦版