首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

Cocos2d-x 整合 jsoncpp 正確姿勢

     編輯:C++ 入門

環境

  • VS2010
  • Cocos2d-x 2.1.4
  • Win32
  • jsoncpp-src-0.5.0

集成步驟

  1. 下載 jsoncpp 源碼:SourceForge
  2. 在 Cocos2d-x 專案的 Classes 目錄下建立 json 文件夾。
  3. 將 jsoncpp-src-0.5.0/include/json 下所有 .h 複製到 Classes/json。
  4. 將 jsoncpp-src-0.5.0/src/lib_json 整個文件夾複製到 Classes/json。
  5. 目錄結構如下:
    Classes/
      json/
        writer.h, value.h, reader.h, json.h, ...
        lib_json/
          json_writer.cpp, json_value.cpp, json_reader.cpp, ...
    
  6. 在需要使用的 .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。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved