首页 > 解决方案 > 删除快速 JSON 嵌套对象的成员

问题描述

是否有删除嵌套 JSON 对象中成员的示例?

例如:考虑下面的 JSON 片段,我如何能够从快速子库中删除成员 C?

{
"a": 1,
"b":{"c" : 2, "d" : 3}
}

我不是在寻找硬编码删除.. 像 a.RemoveMember("c"); 我正在寻找代码示例以使用成员迭代器从快速 JSON 文档中删除成员。我看到的所有示例都是针对 ConstMemberIterator 的。但是 RemoveMember 只能用成员迭代器调用

从文档https://rapidjson.org/md_doc_tutorial.html中,我正在寻找以下函数的示例代码片段:

MemberIterator RemoveMember(MemberIterator): Remove a member by iterator (constant time complexity).
MemberIterator EraseMember(MemberIterator): similar to the above but it preserves order of members (linear time complexity).
MemberIterator EraseMember(MemberIterator first, MemberIterator last): remove a range of members, preserves order (linear time complexity).

标签: rapidjson

解决方案


我不知道这是否可以解决您的问题(http://rapidjson.org/md_doc_pointer.html

// Erase a member or element, return true if the value exists 
bool success = Pointer("/b/c").Erase(d); 
assert(success);

已编辑

是的,但它会擦除整个b对象。结果将是{"a": 1}


推荐阅读