解压后,找到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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)