Rapidjson将密钥值从一个文档对象分配到另一个文档对象
Rapidjson assign a value of key from one document object to other document object
我有两个JSON字符串由Rapidjson库解析。
JSON 1:
{
"jKey1":{
"jVal1Key1":{
"mystr":["str1","str2"]
},
"jVal2Key2":["data1","data2"]
},
"jKey2":"Title"
}
JSON 2:
{
"jVal1Key1":{
"mystr":["str1","str2"]
}
}
我只想替换> json 1 的" jval1key1 ",用" jval1key1 > JSON 2 。
所以我尝试了以下代码。
Document doc1;
doc1.Parse<0>(json1.c_str()).HasParseError();
doc1.Parse(json1.c_str());
Document doc2;
doc2.Parse<0>(json2.c_str()).HasParseError();
doc2.Parse(json2.c_str());
if(doc1.HasMember("jKey1"))
{
if(doc1["jKey1"].HasMember("jVal1Key1"))
{
if(doc2.HasMember("jVal1Key1"))
{
doc1["jKey1"]["jVal1Key1"] = doc2["jVal1Key1"]; // I failed here
}
}
}
在我的程序中,以下行,
doc1["jKey1"]["jVal1Key1"] = doc2["jVal1Key1"]; // I failed here
成功地编译了。但是它在运行时失败。我的问题是,如何将' doc2 '的键' JVAL1KEY1 '的值复制到' doc1 '。'。
'。根据Rapidjson文档,您可以使用CopyFrom
进行DOM树的深层副本。另一个选择是将值交换与交换交换,如果速度是问题,则更快:
示例代码:
doc1["jKey1"]["jVal1Key1"].CopyFrom(doc2["jVal1Key1"], doc2.GetAllocator());
我认为您现在正在做的是将值从DOC2转移到DOC1。查看移动语义部分以获取更多信息,以查看是否可能导致您看到的错误。
相关文章:
- 正在查找文档以获得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 文档?
- RapidJSON 文档创建嵌套对象
- 实现附加对象:不清楚的文档示例
- Rapidjson将密钥值从一个文档对象分配到另一个文档对象
- MFC编辑控制消息处理访问文档对象
- rapidjson:如何将文档对象拆分为较小的文档对象
- 我应该如何编写用C++代码编写的Lua API/对象模型的文档
- 将BSONObj对象存储在std::vector中会与大型文档发生冲突
- 将对象从文档类传递到 MFC 中的对话框