Poco::JSON::Object的深度拷贝
Deep copy of Poco::JSON::Object
我正在尝试创建Poco::JSON::Object
的深度副本。
内部Poco::JSON::Object
使用指针,复制构造函数只是复制这些指针。是否有一个聪明的解决方案如何使用Poco框架复制这个结构?
我不知道有什么通用的解决方案,但是对于性能不重要的小型JSON对象,下面的函数可以很好地完成工作:
Poco::JSON::Object::Ptr cloneJsonObject(Poco::JSON::Object::Ptr obj) {
if (obj) {
std::stringstream streamedObj;
obj->stringify(streamedObj);
Poco::JSON::Parser parser;
return parser.parse(streamedObj).extract<Poco::JSON::Object::Ptr>();
} else {
return nullptr;
}
}
找不到好的文档。这是另一种复制方法。您可以使用c_str()检查键和值是否需要进一步的深度复制。对我来说这很好。
Poco::JSON::Object::Ptr cloneJsonObject(Poco::JSON::Object::Ptr obj)
{
Poco::JSON::Object::Iterator it;
Poco::JSON::Object *ptr = new Poco::JSON::Object;
// loop and copy
for(it = obj->begin(); it != obj->end(); it++)
ptr->set(it->first, it->second);
return ptr;
}
相关文章:
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- OpenGL在启用深度测试时不会丢弃我的碎片
- 如何在没有数据拷贝的情况下从指针创建一个Eigen VectorXd对象
- C++尝试深度复制唯一指针时出现内存访问冲突
- 试图找到二叉树的深度
- 与浅拷贝构造函数和深拷贝构造函数混淆
- 操纵安卓相机的深度图导致应用程序崩溃
- 深度值没有意义 R200 相机
- 对如何制作双链表的深度副本感到困惑?
- 以C++访问 HoloLens 2 深度图像
- 在 c++ 中使用深度复制的运算符重载
- 使用复制构造函数修复浅拷贝
- 指向指向对象的指针数组的指针的深度拷贝
- 如何执行char *的深度拷贝
- Poco::JSON::Object的深度拷贝
- c++深度拷贝中的内存泄漏
- 链表的深度拷贝
- 一个结构体的深度拷贝,它嵌入了许多简单的变量和一个嵌套结构体
- 如何创建一个QList的深度拷贝(Qt 4.8)
- 多线程深度拷贝