Json 文件如何 追加删除
时间: 2024-03-13 12:45:24 浏览: 99
json格式数据的添加,删除及排序方法
如果要追加 JSON 数据到一个文件中,可以先读取文件中原有的 JSON 数据,将新的数据追加到这个 JSON 数据中,然后再将整个 JSON 数据重新写入文件。以下是一个示例:
```cpp
QString filename = "data.json";
QFile file(filename);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
// 读取原有的 JSON 数据
QByteArray jsonData = file.readAll();
file.close();
// 将新的数据追加到原有的 JSON 数据中
QJsonDocument doc = QJsonDocument::fromJson(jsonData);
QJsonObject obj = doc.object();
obj["name"] = "new name";
obj["age"] = 20;
doc.setObject(obj);
jsonData = doc.toJson();
// 将整个 JSON 数据重新写入文件
if (file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) {
QTextStream out(&file);
out << jsonData;
file.close();
}
}
```
如果要删除 JSON 数据中的某个属性,可以先读取文件中原有的 JSON 数据,将要删除的属性从 JSON 数据中移除,然后再将整个 JSON 数据重新写入文件。以下是一个示例:
```cpp
QString filename = "data.json";
QFile file(filename);
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
// 读取原有的 JSON 数据
QByteArray jsonData = file.readAll();
file.close();
// 将要删除的属性从 JSON 数据中移除
QJsonDocument doc = QJsonDocument::fromJson(jsonData);
QJsonObject obj = doc.object();
obj.remove("name");
doc.setObject(obj);
jsonData = doc.toJson();
// 将整个 JSON 数据重新写入文件
if (file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) {
QTextStream out(&file);
out << jsonData;
file.close();
}
}
```
这里假设要追加的新数据是一个包含 name 和 age 两个属性的 JSON 对象。要删除的属性是 name。在实际使用中,需要根据具体的需求进行修改。
阅读全文