RapidJSON:使用文档或编写器构建之间的差异
RapidJSON : Differences between building using Document or Writer
我想用rapidJSON
来构建JSON文件。
我注意到(至少(有 2 个选项可以这样做。
第一种是直接使用rapidJSON::Writer
:
StringBuffer s;
Writer<StringBuffer> writer(s);
writer.StartObject();
writer.String("hello");
...
另一种是使用rapidJSON::Document
:
Document d;
d.SetObject();
d.AddMember("hello", "world", d.GetAllocator());
...
除了Document
端易用性和Writer
尺寸上类型控制较多的明显差异外,还有性能差异吗? 两个分配相同吗?
Document
是一种用于在内存中存储JSON树(又名DOM(的数据结构。 需要Writer
将Document
字符串化(转储/序列化(成 JSON:
d.Accept(writer);
因此,如果您的应用程序只需要编写 JSON,并且可以轻松应用Writer
,则首选它而不是Document
。这是因为Document
需要内存分配和额外的开销。
但是,Document
更容易解析和修改 JSON。
附言在当前版本的 RapidJSON 中,对象键最好使用 writer.Key("hello")
而不是 writer.String("hello")
。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 无法在 CLion 中构建 C++ 项目
- Android NDK 中的预构建工具链和自定义工具链编译器之间的差异
- MS Visual C 释放和调试构建之间的不同行为的可能原因
- 通过值和参考,对象构建返回对象之间的区别
- cmake-一次针对多个体系结构,而无需在构建之间进行手动清理
- 构建对象的方法之间有什么区别
- C 编译器可以在用户定义和编译器生成的复制构建器之间进行自由选择
- GCOV:使用GCC构建时,覆盖率和最新覆盖率之间的区别是什么
- Win构建与MinGW构建之间的差异
- Clang - Windows 快照构建和版本 3.7.1 之间的区别
- RapidJSON:使用文档或编写器构建之间的差异
- Netbeans IDE、测试和调试测试中 C++ 项目中的构建/清理和构建之间的区别
- 失败构建和破坏之间的C++代码重用
- DistCC和CMake-运行make时在本地构建和分布式构建之间进行选择
- MinGW、MinGW-w64和MinGW构建之间的区别是什么
- 在使用QtCreator和Visual Studio构建的应用程序之间使用Qt STL
- Linux和Windows构建的应用程序之间的OpenCV行为差异
- Boost库构建-运行时链接和链接选项之间的差异