如何删除 nlohmann::json 文件 C++ 中项目内部的项目
How to erase item inside of item in nlohmann::json file C++
我想知道如何删除 nlohmann::json C++ 库中项目中的项目。
Json 示例文件:
{
"Users":{
"User1":{
"Name":"BOB",
"DeleteMe":"IWantToBeDeleted!"
}
}
}
我要删除的是"DeleteMe":"IWantToBeDeleted!"在“用户”和“用户 1”中
我查看了 basic_json::erase 的文档,但我只能看到如何删除 json 文件根目录中的项目,例如示例文件中的“用户”。
任何帮助将不胜感激=D
basic_json::erase
仅从当前引用的 json
节点中删除——因此如果您的 json
对象是外部对象,这就是您只能删除顶级条目的原因.您想要的是一种获取内部节点 User1
并从那里在 DeleteMe
键上调用 erase
的方法。
您应该能够使用 json_pointer
轻松获得对 User1
的引用——这基本上是需要遍历以获得所需节点的节点的字符串路径。拥有节点后,它应该像调用 erase
.
一样简单
像这样:
auto json = nlohmann::json{/* some json object */};
auto path = nlohmann::json_pointer<nlohmann::json>{"/Users/User1"};
// Get a reference to the 'user1' json object at the specified path
auto& user1 = json[path];
// Erase from the 'user1' node by key name
user1.erase("DeleteMe");
我想知道如何删除 nlohmann::json C++ 库中项目中的项目。
Json 示例文件:
{
"Users":{
"User1":{
"Name":"BOB",
"DeleteMe":"IWantToBeDeleted!"
}
}
}
我要删除的是"DeleteMe":"IWantToBeDeleted!"在“用户”和“用户 1”中 我查看了 basic_json::erase 的文档,但我只能看到如何删除 json 文件根目录中的项目,例如示例文件中的“用户”。
任何帮助将不胜感激=D
basic_json::erase
仅从当前引用的 json
节点中删除——因此如果您的 json
对象是外部对象,这就是您只能删除顶级条目的原因.您想要的是一种获取内部节点 User1
并从那里在 DeleteMe
键上调用 erase
的方法。
您应该能够使用 json_pointer
轻松获得对 User1
的引用——这基本上是需要遍历以获得所需节点的节点的字符串路径。拥有节点后,它应该像调用 erase
.
像这样:
auto json = nlohmann::json{/* some json object */};
auto path = nlohmann::json_pointer<nlohmann::json>{"/Users/User1"};
// Get a reference to the 'user1' json object at the specified path
auto& user1 = json[path];
// Erase from the 'user1' node by key name
user1.erase("DeleteMe");