返回JSONDOC作为方法的参考
returning JsonDoc as a reference from a method
i具有以下方法,该方法将jsondoc作为参考
bool MyClass::jsonTest(rapidjson::Document & rjsonDoc)
{
rjsonDoc.SetObject();
rapidjson::Value val(rapidjson::kObjectType);
val.AddMember("a", 1, rjsonDoc.GetAllocator());
val.AddMember("b", 2, rjsonDoc.GetAllocator());
val.AddMember("c", 3, rjsonDoc.GetAllocator());
rjsonDoc.AddMember("Values", val, rjsonDoc.GetAllocator());
//outputs the json into a file
std::FILE* fp = fopen("outputjsonTest.json", "wb"); // non-Windows use "w"
char writeBuffer[65536];
rapidjson::FileWriteStream os(fp, writeBuffer, sizeof(writeBuffer));
rapidjson::Writer<rapidjson::FileWriteStream> writer(os);
rjsonDoc.Accept(writer);
fclose(fp);
return false;
}
称为将完美的json写入文件outputjsontest.json
时,上述方法将但是在调用另一类方法并将其写入文件中后,
rapidjson::Document d;
CData_BisconaCtrl dMan;
dMan.jsonTest(d);
//outputs the json into a file
std::FILE* fp = fopen("outputruntest.json", "wb"); // non-Windows use "w"
char writeBuffer[65536];
rapidjson::FileWriteStream os(fp, writeBuffer, sizeof(writeBuffer));
rapidjson::Writer<rapidjson::FileWriteStream> writer(os);
d.Accept(writer);
fclose(fp);
文件,outputruntest.json被证明是空白的。
看来我无法通过参考样式使用通行证来从方法中返回jsondocument。还是我犯了一个错误?是否可以以这种方式返回jsondocument?
我认为您的工作没有错。此外,我尝试运行您的代码,并且似乎对我有用。
也就是说,您应该注意,如果您尝试多次使用Writer
(例如,要打印多个文档或第二次打印同一文档),则首先需要Reset()
。它将停止在第一个文档的末尾产生输出,因此,如果您尝试打印第二个文档,它不会产生任何输出(因为结果不是法律json"文档")。
[编辑:]但是,您可以尝试询问它以查看其中的内容,而不是将对象倾倒到文件中。检查其类型,大小,容量;查看其是否具有预期成员,还是对其成员/参赛作品进行迭代;等等。我将尝试证明基本的C 东西在起作用。(即。
祝你好运!
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- 类的方法和对象。参考?智能指针?简单的初始化?
- C 将方法和字段带入外部范围,而无需明确的参考
- 为什么未调用具有常量参考返回值的超载方法
- 是否有一种方法可以始终通过值(制作副本)而不是在使用类成员函数时通过参考来传递
- std ::函数方法参考无法将dword投入到dword64
- 是否有一种方法可以避免在RVALUE和LVALUE参考中创建功能时避免重复的代码
- 通过方法返回的重新选择参考
- C++方法需要参考,无法让Cython提供
- 分配从方法返回到变量的参考
- 返回JSONDOC作为方法的参考
- 我如何验证2种模拟方法以相同的参考调用
- 传递向量作为参考的正确方法是什么
- 更改对未弃用方法C 的参考
- 正确的方法返回getter中的字符串参考
- STD :: Atomic Load方法与STD :: shared_ptr一起使用时会减少参考计数
- 将当前对象传递到方法,参考或指针
- 有什么方法可以将指针指向参考