環境
- VS2010
- Cocos2d-x 2.1.4
- Win32
- jsoncpp-src-0.5.0
集成步驟
- 下載 jsoncpp 源碼:SourceForge
- 在 Cocos2d-x 專案的
Classes 目錄下建立 json 文件夾。
- 將
jsoncpp-src-0.5.0/include/json 下所有 .h 複製到 Classes/json。
- 將
jsoncpp-src-0.5.0/src/lib_json 整個文件夾複製到 Classes/json。
- 目錄結構如下:
Classes/
json/
writer.h, value.h, reader.h, json.h, ...
lib_json/
json_writer.cpp, json_value.cpp, json_reader.cpp, ...
- 在需要使用的 .cpp 中直接
#include "json/json.h" 即可,無需額外配置包含路徑或庫鏈接(源碼直接編譯進專案)。
使用示例
#include "json/json.h"
// 在 HelloWorld::init() 中測試
bool HelloWorld::init() {
Json::Value root;
root["name"] = "cocos2d-x";
root["version"] = "2.1.4";
root["features"]["cross-platform"] = true;
root["features"]["open-source"] = true;
Json::FastWriter writer;
std::string jsonStr = writer.write(root);
CCLog("JSON: %s", jsonStr.c_str());
// 解析
Json::Value parsed;
Json::Reader reader;
if (reader.parse(jsonStr, parsed)) {
CCLog("Parsed name: %s", parsed["name"].asCString());
}
return true;
}
注意事項
- jsoncpp 0.5.0 較老,新版本(1.x)API 有變化(如
Json::StreamWriterBuilder 替代 FastWriter),但 0.5.0 穩定兼容舊專案。
- 若專案啟用預編譯標頭,確保
json/json.h 不在 PCH 中,避免重複定義錯誤。
- Android/iOS 跨平台編譯時,需在
Android.mk / CMakeLists.txt 中加入 lib_json 下所有 .cpp。