我需要能够读取现有的 JSON 文件,对其进行修改(例如替换、删除和添加对象、数组和键值对),然后再次将文件写出。
我正在尝试使用以下内容读取和写入 JSON 文件:
{
"array": [
{
"name": "Channel",
"default": 1
},
{
"name": "Size",
"default": 457
}
]
}
我正在成功读取文件,但未能使用以下代码对其进行任何更改:
QFile File("/path/to/myfile.json");
File.open(QIODevice::ReadOnly | QIODevice::Text);
QJsonParseError JsonParseError;
QJsonDocument JsonDocument = QJsonDocument::fromJson(File.readAll(), &JsonParseError);
File.close();
QJsonObject RootObject = JsonDocument.object();
QJsonArray Array = RootObject.value("array").toArray();
QJsonObject ElementOneObject = Array.at(0).toObject();
ElementOneObject.insert("key", QJsonValue(QString("value")));
ElementOneObject.insert("name", QJsonValue(QString("David")));
File.open(QFile::WriteOnly | QFile::Text | QFile::Truncate);
File.write(JsonDocument.toJson());
File.close();
我希望看到数组的第一个元素有一个新名称“David”和一个新的键值对,如"key" : "value"
. 此代码运行后文件的内容是相同的。我知道该文件已被写出,因为键值对的顺序已更改为按按字母顺序排序的键排序。
如何获取文件以反映我尝试进行的更改?