gpt4 book ai didi

c++ - cocos2d-x JSON文件解析

转载 作者:太空狗 更新时间:2023-10-29 23:17:00 26 4
gpt4 key购买 nike

我有一个 .json 文件,其中包含一组字典。你能告诉我一个解析它的好方法吗?我使用的是 cocos2d-x 3.0-alpha 版本和 json 类,放在 external/json 目录中。

我试过:

Array* items = Array::createWithContentsOfFile("test.json");

string fullPath = CCFileUtils::getInstance()->fullPathForFilename("test.json");
long bufferSize = 0;
const char* mFileData = (const char*)FileUtils::getInstance()->getFileData(fullPath.c_str(), "r", &bufferSize);

string clearData(mFileData);
size_t pos = clearData.rfind("}");
clearData = clearData.substr(0, pos+1);

string data = clearData.c_str();

log("%s", clearData.c_str());

Json::Value _root;
Json::Reader reader;

reader.parse(data, _root);

但它们都不起作用 - 第一种方法返回一个空数组,第二种方法返回一个 _root 变量,包含整个 json,但我无法将其放入数组并为每个方法创建一个单独的字典对象数组的元素(这是我正在尝试做的)。

最佳答案

使用上面提到的 JsonCPP,但使用 CCFileUtils 类

unsigned long filesize = 0;
std::string content;
std::string fullPath = "path relative to your androidmanifest.xml/index.json"

unsigned char* fileData = CCFileUtils::sharedFileUtils()->getFileData(fullPath.c_str(), "r", &filesize);
content.append((char*)fileData);
delete[] fileData;

Json::Value jsonresult;
Json::Reader reader;
bool parsingSuccessful = reader.parse( content, jsonresult );
if ( !parsingSuccessful )
{
// report to the user the failure
return false;
}

关于c++ - cocos2d-x JSON文件解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com