``` nlohmann::json ```nlohmann::json json_grab["body"]["road_trigger_result"]["result"]如何删除其中[img_idx]
时间: 2024-10-08 16:18:13 浏览: 38
`nlohmann::json` 是一个轻量级的 JSON 库,用于在 C++ 中处理 JSON 数据。如果你想从 `json_grab` 对象中删除特定索引 `[img_idx]` 的内容,你可以使用库提供的成员函数。但是,`nlohmann::json` 并没有直接提供删除元素的操作,因为它是无序映射,不像数组那样可以按索引删除。不过,你可以选择以下两种方法之一来达到目的:
**方法一:替换为空**
如果你想要保留原始对象的结构并且只是清空某一项的值,可以设置其值为默认构造的 `json`(通常是 `{}` 或 `null`,取决于你希望清除的数据类型):
```cpp
json_grab["body"]["road_trigger_result"]["result"][img_idx] = nlohmann::json();
```
或者
```cpp
json_grab["body"]["road_trigger_result"]["result"][img_idx] = nullptr; // 如果是引用类型
```
**方法二:创建新的 JSON 对象**
如果要完全移除这一项,你可以创建一个新的 JSON 对象而不包含该键,然后更新原对象:
```cpp
nlohmann::json new_json = json_grab["body"]["road_trigger_result"]["result"];
new_json.erase(img_idx);
json_grab["body"]["road_trigger_result"]["result"] = std::move(new_json);
```
这两种方法都是将 `img_idx` 的内容替换成了默认值或者从数组中移除了它。
阅读全文