根据the tutorial:
每个JSON值都存储在一个名为Value的类型中。表示DOM的Document包含DOM树的根值。
如果是这样,应该可以从文档中制作子文档。
如果我的JSON是:
{
"mydict": {
"inner dict": {
"val": 1,
"val2": 2
}
}
}
我希望能够从内部词典创建一个文档。
(然后在如何将文档节点插入另一个文档的常见问题解答中的follow the instructions?)
答案 0 :(得分:0)
鉴于原始文件包含:
{
"mydict": {
"inner dict": {
"val": 1,
"val2": 2
}
}
}
您可以复制子文档:
const char json[] = "{\"mydict\": {\"inner dict\": {\"val\": 1, \"val2\": 2}}}";
Document doc, sub; // Null
doc.Parse(json);
sub.CopyFrom(doc["mydict"], doc.GetAllocator());
您还可以将子文档与另一个文档交换:
const char json[] = "{\"mydict\": {\"inner dict\": {\"val\": 1, \"val2\": 2}}}";
Document doc, sub; // Null
doc.Parse(json);
sub.Swap(doc["mydict"]);
进行一些验证:
const char json[] = "{\"mydict\": {\"inner dict\": {\"val\": 1, \"val2\": 2}}}";
Document doc, sub; // Null
doc.Parse(json);
if (doc.IsObject()) {
auto it = doc.FindMember("mydict");
if (it != doc.MemberEnd() && it->value.IsObject()) {
sub.Swap(it->value);
}
}
每个都会导致sub
包含:
{
"inner dict": {
"val": 1,
"val2": 2
}
}
使用CopyFrom()
方法,doc
将包含:
{
"mydict": {
"inner dict": {
"val": 1,
"val2": 2
}
}
}
使用Swap()
:
{
"mydict": null
}