JsonObject转QJsonDocument
时间: 2023-08-10 22:03:42 浏览: 98
将一个`QJsonObject`转为`QJsonDocument`可以使用`QJsonDocument`类的`fromVariant()`静态方法,示例如下:
```c++
QJsonObject jsonObj;
jsonObj.insert("name", "Alice");
jsonObj.insert("age", 30);
QJsonDocument jsonDoc = QJsonDocument::fromVariant(jsonObj.toVariantMap());
```
其中,`jsonObj`为要转换的`QJsonObject`对象,`toVariantMap()`方法将`QJsonObject`对象转换为`QVariantMap`对象,`QJsonDocument::fromVariant()`方法将该`QVariantMap`对象转为`QJsonDocument`对象。
转换为`QJsonDocument`后,可以将其转为字符串输出或者保存到文件中,示例如下:
```c++
QString jsonString = jsonDoc.toJson(QJsonDocument::Compact);
qDebug() << jsonString;
QFile file("json.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream stream(&file);
stream << jsonString;
file.close();
}
```
其中,`QJsonDocument::toJson()`方法将`QJsonDocument`对象转为字符串,`QJsonDocument::Compact`表示压缩格式,如果要输出格式化的字符串可以使用`QJsonDocument::Indented`参数。保存到文件中可以使用`QFile`和`QTextStream`类。
阅读全文