Qt5.15.2 如何读写json文件
时间: 2023-08-30 08:10:34 浏览: 130
在Qt中读写JSON文件可以使用Qt提供的QJsonDocument和QJsonObject类。
首先,我们需要将JSON文件读入一个QJsonDocument对象中,可以使用以下代码:
```cpp
QFile file("example.json");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "Failed to open file";
return;
}
QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
file.close();
```
接下来,我们可以将QJsonDocument转换为QJsonObject对象,以便更方便地读取和写入JSON数据。可以使用以下代码:
```cpp
QJsonObject obj = doc.object();
```
读取JSON数据可以使用QJsonObject的value()方法,例如:
```cpp
QString name = obj.value("name").toString();
int age = obj.value("age").toInt();
```
写入JSON数据可以使用QJsonObject的insert()方法,例如:
```cpp
obj.insert("address", QJsonValue("123 Main St."));
obj.insert("phone", QJsonValue("555-1234"));
```
最后,我们可以将QJsonObject转换为QJsonDocument对象并将其写入文件中,可以使用以下代码:
```cpp
QFile file("example.json");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
qDebug() << "Failed to open file";
return;
}
QJsonDocument doc(obj);
file.write(doc.toJson());
file.close();
```
这样就完成了JSON文件的读写操作。
阅读全文
相关推荐


















