json我就不介绍了,我主要说下怎么在cocos2dx中加入并使用json,我

json我就不介绍了,我主要说下怎么在cocos2dx中加入并使用json,我,第1张

一、首先去下载JsonCpp这个库。

解压后,找到include的文件夹。将它们复制到2dx工程的libs目录,然后加入到工程中。

你可以使用jsoncpp这个库了,在使用的地方引用头文件json.h就可以了。

二、jsoncpp的一些使用方法介绍:(网上也有很多介绍,我只是写下我工作中遇到的一些)

1、初始化

Json::Value root

Json::Reader reader

reader.parse("{"name":"sunny"}", root)

Reader可以用来初始化一个人json从字符串。

2、读取json文件初始化

这是我写的一个方法:

Json::Value BYJsonDataManager::getJsonFromFile(const char* fileName){

Json::Reader reader

ifstream file(getFullPath(fileName))

CCAssert(file.is_open(), "file is open fail!")

Json::Value root

if (!reader.parse(file, root, false )) {

CCAssert(false, "Json::Reader Parse error!")

}

return root

}

const char* BYJsonDataManager::getFullPath(const char* path){

return cocos2d::CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(path)

}

3、解析json

首先生成一个json

Json::Value myjson = getJsonFromFile("test.json")//利用上面的函数生成一个json。

int num = myJson["num"].asInt()

string str = myJson["name"].asString()

4、json数组

Json::Value myjson = getJsonFromFile("test.json")//利用上面的函数生成一个json。

int i = 0

Json::Value arr = myjson[i]//获取arr数组的第一个元素

5、利用迭代器获取json的key。(有时候并不知道json的key,这个时候可以利用迭代器获取json的key)

Json::Value myjson = getJsonFromFile("test.json")//利用上面的函数生成一个json。

Json::Value::Members members(myjson.getMemberNames())

for (Json::Value::Members::iterator it = members.begin()it != members.end()++it) {

const std::string &key = *it

}

6、自己拼装Json数组,(有时候发往服务器的数据是一个json数据)

Json::Value arr

for(int i = 0 i <5++i){

Json::Value myjson = getJsonFromFile("test.json")//利用上面的函数生成一个json。

arr.append(protocolData)

}

如果想让这个jsonArr有key。

Json::Value arr2

arr2["array"] = arr

OK ,目前只记得这些,等我想起其它的再补充。一些比较简单的没有都介绍。

可以使用jsoncpp类来处理json:

string strJ("[1,2,3]")

Json::Reader reader

Json::Value root

if(!reader.parse(strJ,root)){

return -1

}

int size = root.size()

for(int i=0i<size++i)

{

std::cout <<root[i].asInt() <<std::endl

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11736807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存