Rapidjson中返回null或空文档
Return null or empty Document in rapidjson
我已经创建了一种解析char *的辅助方法。但是当某些事情失败时,我希望它返回诸如Document
之类的空。我该如何为Rapidjson做到这一点?例如,在JSONCPP中,他们有Value::null
。
Document & CEJsonHelper::parse(const char * inputString) {
Document d;
auto& document = d.Parse(inputString);
if(document.HasParseError()){
auto error = "Failed to parse JSON (offset " + std::to_string(d.GetErrorOffset()) + "). "
"Error: " + GetParseError_En(document.GetParseError());
Log(error);
return Document::Null; //wrong
}
return document;
}
据我了解,您可以将最后一行更改为
return d.Parse("{}");
如果此代码可能频繁,并且不打算更改返回的文档(在这种情况下,您最好将函数的返回值更改为 const Document&
(,则可能需要缓存您的上述表达式的结果申请,并根据需要返回。
更新:我可能错了,但是后来的RapidJson版本(至少当前稳定1.1.0(在不良文档上抛出异常,而不是标记错误变量。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 如何在文档文件夹中创建目录
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 通过构造函数创建一些值并尝试添加到文档中使用 rapidjson 不起作用
- 关于类的 Python 文档 - 对C++的引用不正确
- C++/autoconf 等效于文档库要求.txt的要求是什么?
- mbed:使用 USB 文档库编译会导致错误
- C++ VISUAL STUDIO:GLFWwindow没有初始化,即使它是在文档中编写的并且以前工作过
- 使用 yaml-cpp 更新 YAML 文档的节点和值
- 在加载 MSHTML 文档之前从 MSHTML 文档中删除无效的 URL
- 如何在C++中表示JSON文档的递归对象结构?
- 如何查找 Redshift Maya API 文档?
- 如何使用值模板编写文档测试用例?
- 如何使用 Gradle DSL(领域特定语言)上的文档?
- ncurses 找不到任何关于cchar_t的文档
- 提取狮身人面像文档中的C++代码片段
- 关于 API 文档和设备操作 在助手-sdk-cpp 上
- 如何搜索提升文档?
- 使用 mongo c++ 驱动程序查询嵌套的 BSON 文档
- PIMAGE_DOS_HEADER上缺少MSDN文档