ball.Json 数据如下:
{ "entitIEs":[ { "entity":{ "TapOpposite":0, "Interval":0.95, "BallNum":1 } },248)"> { "entity":{ "TapOpposite":0,108); List-style:decimal-leading-zero outsIDe; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "Interval":0.91,248)"> "BallNum":2 } },108); List-style:decimal-leading-zero outsIDe; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> "BallNum":3 ] }
在cocos2dx中Json的读取是用的rAPIdJson,包含在cocostudio工程中。所以我们要先引入#include "cocostudio/CocoStudio.h"
voIDGameWorld::readJson() //Json文档 rAPIdJson::document_doc; boolbRet=false; ssize_tsize=0; unsignedchar*pBytes=NulL; do{ pBytes=cocos2d::CCfileUtils::sharedfileUtils()->getfileData("ball.Json","r",&size); CC_BREAK_IF(pBytes==NulL||strcmp((char*)pBytes,"")==0); std::stringload_str((constCC_SAFE_DELETE_ARRAY(pBytes); _doc.Parse<0>(load_str.c_str()); CC_BREAK_IF(_doc.HasParseError()); //生成Json文档对像 if(!_doc.IsObject()) return; //是否有此成员 if(!_doc.HasMember("entitIEs")) //通过[]取成员值,再根据需要转为array,int,double,string constrAPIdJson::Value&pArray=_doc["entitIEs"]; //是否是数组 if(!pArray.IsArray()) return; for(rAPIdJson::SizeTypei=0;i<pArray.Size();i++) constrAPIdJson::Value&p=pArray[i]; if(p.HasMember("entity")) constrAPIdJson::Value&valueEnt=p["entity"]; if(valueEnt.HasMember("TapOpposite")&&valueEnt.HasMember("Interval")&&valueEnt.HasMember("BallNum")) constrAPIdJson::Value&tapOpposite=valueEnt["TapOpposite"]; inttapOp=tapOpposite.GetInt();//得到int值 constrAPIdJson::Value&interval=valueEnt["Interval"]; floatinter=interval.GetDouble();//得到float,double值 constrAPIdJson::Value&ballNum=valueEnt["BallNum"]; intball=ballNum.GetInt(); ballParamparam; param.tapOp=tapOp; param.inter=inter; param.ballindex=ball; m_ballParamVec.push_back(param); else bRet=true; }while(0); } 总结
以上是内存溢出为你收集整理的cocos2dx 读取json及解析全部内容,希望文章能够帮你解决cocos2dx 读取json及解析所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)