std::string ReadJson::geString(std::string filename, std::string name){
Json::Reader reader; //用来解析json文件的
Json::Value root; //代表json的一段数据
std::string path = cocos2d::FileUtils::getInstance()->fullPathForFilename("file.txt");
log("path: %s",path.c_str());
std::string data = cocos2d::FileUtils::getInstance()->getStringFromFile("language.json"); //这个函数用来加载一个json文件,其返回值是一个字符串
//std::ifstream ifs(path);
std::string str = cocos2d::FileUtils::getInstance()->getStringFromFile("file.txt");
log("str : %s", data.c_str());
//cocos2d::Data data = cocos2d::FileUtils::getInstance()->getDataFromFile(filename);
/*if (reader.parse(ifs, root, false)){
return root[name].asCString();
}*/
ifstream in("language.json", ios::binary);
if (!in.is_open())
{
cout << "Error opening file\n";
return "";
}
if (reader.parse(in, root))
{
//读取根节点信息
string name = root["start"].asString();
cout << "My name is " << name << endl;
}
else
{
cout << "parse error\n" << endl;
}
in.close();
/*
调用reader(Json::Reader类型)的parse函数开始解析json文件,解析的结果会保存在root对象中(Json::Value类型),读取它的值很简单,
就像普通的数组使用索引一样,比如root["id"]。然后还可以根据值的类型进行转换,例如:root["name"].asCString()。
*/
/*if (reader.parse(data, root)){
return root[name].asCString();
}*/
//return "";
}
使用ccos2dx v3.12,在vs2013中配置完jsoncp库,使用上面的代码,从language.json文件中读取不到文件里面的数据,这是怎么回事儿?