cocos2d-x 网络部分之Json数据包
Json 采用Jsoncpp , 从官网上下载源代码, 目录下面有2个目录:
1.jsoncpp/src/lib_json/ ,这里是json实现方法,要将以下文件加入到工程中
../../Classes/jsoncpp/src/lib_json/json_reader.cpp \
../../Classes/jsoncpp/src/lib_json/json_value.cpp \
../../Classes/jsoncpp/src/lib_json/json_writer.cpp \
2.jsoncpp/include/json ,这里需要设置为include路径, 具体跨平台设置头文件路径,请参考:
(http://zgame.blog.51cto.com/6144241/1066817)
$(LOCAL_PATH)/../../Classes/jsoncpp/include/json \
//-------------------------------------------------------------------
Json使用方法:
1. 解析
#include"json.h"usingnamespacestd;Json::Readerreader;Json::Valuevalue;voidGameBoard::readJson(std::stringnet_response){//开始解析if(reader.parse(net_response,value)){//读取stringRead_json_GameDataByString(value,"v");Read_json_GameDataByString(value,"performance");//解析数组Json::ValuearrayObj=value["result"];for(unsignedinti=0;i<arrayObj.size();i++){interrore=Read_json_GameDataByInt(arrayObj[i],"ecode");....}}}
2. 发送
voidGameBoard::writeJson(std::stringcmd,Json::Valueparams){std::stringss;usingnamespacestd;Json::FastWriterwriter;Json::Valueroot;Json::ValuearrayObj;Json::Valueitem;Json::ValuedataArray;Json::ValuedataItem;if(cmd==kNetGameInit){
_globalData.userInfo_.guid="test";
#if(CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)if(!this->gameBoardDelegate->if_QQLogin()){char*ttt=this->gameBoardDelegate->Get_Andorid_Udid();_globalData.userInfo_.guid=*CCString::createWithFormat("%s",ttt);}else{//qqalreadyset}CCLOG("_globalData.userInfo_.guid:%s",_globalData.userInfo_.guid.getCString());#endifitem["guid"]=0;item["code"]=00;params["sync"]=0;}else{item["guid"]=_globalData.userInfo_.udid.m_sString;item["code"]=_globalData.userInfo_.authcode;params["sync"]=1;}item["uid"]=_globalData.userInfo_.guid.m_sString;item["pid"]="2";item["t"]="";item["v"]="1.3.4";item["key"]="1234";item["server"]="1";dataItem["cmd"]=cmd;dataItem["params"]=params;dataArray.append(dataItem);//数组的处理方式item["data"]=dataArray;ss=item.toStyledString();CCLOG("%s",ss.c_str());ss=writer.write(item);//json数据,http发送this->gameBoardDelegate->HttpDataSend(ss);}
数据包加密在http网络收数据后和发数据前处理就可以。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。