qt create 将json文件内容序列化存储
时间: 2023-12-04 19:05:09 浏览: 71
您可以使用Qt提供的QJsonDocument和QJsonObject类将JSON数据序列化并存储到文件中。下面是一个例子:
```cpp
// 创建一个QJsonObject对象并添加数据
QJsonObject jsonObj;
jsonObj["name"] = "张三";
jsonObj["age"] = 20;
jsonObj["gender"] = "男";
// 创建一个QJsonDocument对象,并将QJsonObject对象添加到其中
QJsonDocument jsonDoc(jsonObj);
// 将QJsonDocument对象序列化为JSON字符串
QByteArray jsonData = jsonDoc.toJson();
// 将JSON字符串写入文件
QFile file("data.json");
if (file.open(QIODevice::WriteOnly)) {
file.write(jsonData);
file.close();
}
```
在这个例子中,我们首先创建一个QJsonObject对象,并向其中添加一些数据。然后,我们将这个QJsonObject对象添加到一个QJsonDocument对象中,并将其序列化为一个JSON字符串。最后,我们将这个JSON字符串写入一个名为"data.json"的文件中。
当您需要读取这个文件并将其反序列化为一个QJsonObject对象时,可以使用以下代码:
```cpp
// 读取文件中的JSON数据
QFile file("data.json");
if (file.open(QIODevice::ReadOnly)) {
QByteArray jsonData = file.readAll();
file.close();
// 将JSON数据解析为QJsonDocument对象
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData);
// 从QJsonDocument对象中获取QJsonObject对象
QJsonObject jsonObj = jsonDoc.object();
// 使用QJsonObject对象中的数据
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
QString gender = jsonObj["gender"].toString();
}
```
在这个例子中,我们首先读取文件中的JSON数据,并将其解析为一个QJsonDocument对象。然后,我们从QJsonDocument对象中获取QJsonObject对象,并使用其中的数据。
阅读全文