永发信息网

rapidjson::Value 怎样当做返回值 V2.2.6

答案:2  悬赏:80  手机版
解决时间 2021-02-08 10:01
  • 提问者网友:寂寞撕碎了回忆
  • 2021-02-08 06:22
rwjson.h
static Value &readJson(const char* filename,const char* titlename);
rwjson.cpp
Value &RWjson::readJson(const char* filename,const char* titlename)
{
std::string fileName=CCFileUtils::sharedFileUtils()->fullPathForFilename(filename);
CCString* str=CCString::createWithContentsOfFile(fileName.c_str());
//创建一个Document对象rapidJson的相关操作都在Document类中
Document doc;
//通过parse方法将json数据解析出来
doc.Parse(str->getCString());
//对json的解析结构进行判断,否则以下的代码将无效
if (doc.HasParseError())
{
CCLOG("error %s",doc.GetParseError());
}
else
{
//读取json value
if (doc.HasMember("tankdata"))//看有没有hello成员
{
Value &pp=doc["tankdata"][titlename];
return pp;
}
}
}
调用:
//读取json

Value &aa=this->readJson("tankinfo.json","herotank");
CCLOG("%d",aa["SHOOTTIME"]);

这样子aa调不到。直接就是空的。到底怎么才能取值到value呢?
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-02-08 07:50
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,可替换XML成为AJAX程序中的数据交换格式。 它有两种结构: 1.“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 2.值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 JSON是JavaScript的子集,我们在JavaScript中可以很容易的使用它。
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-02-08 08:55
Document doc 是局部变量 Value &pp=doc["tankdata"][titlename], 操作符=只是浅拷贝,pp不能作为返回值。 Document doc改成成员变量。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯