gpt4 book ai didi

c++ - 如何从文件加载 QJsonDocument

转载 作者:行者123 更新时间:2023-11-28 04:15:07 27 4
gpt4 key购买 nike

我正在尝试学习如何使用 JSON 和 Qt 我已经处理过,但我在从文件中获取 QJsonDocument 时遇到了问题。文件可以正确打开,我也可以使用 qDebug() 查看文件的内容,但是从该文件创建的 QJsonDocument 始终为空

 if(stdButton==QDialogButtonBox::Ok)
{
qDebug()<<"accept button clicked";

QFile userList;

userList.setFileName("users.json");
userList.open(QIODevice::ReadOnly);

//using this qDebug i'm able to see files content
qDebug()<<QJsonDocument::fromJson(userList.readAll());

//but this QJsonDocument is always empty
QJsonDocument userDoc;
userDoc=QJsonDocument::fromJson(userList.readAll());
if(userDoc.isEmpty())
{
qDebug()<<"userDoc is empty";
}
qDebug()<<userDoc;
accept();
}

最佳答案

//but this QJsonDocument is always empty
QJsonDocument userDoc;
userDoc=QJsonDocument::fromJson(userList.readAll());

那是因为您在上一次调用 readAll() 时已经从文件中读取了所有内容,因此没有可从文件中读取的内容。

您可以存储来自 userList.readAll() 的数据并重复使用。

QFile userList;

userList.setFileName("users.json");
userList.open(QIODevice::ReadOnly);

QByteArray data = userList.readAll();
qDebug()<<QJsonDocument::fromJson(data);

QJsonDocument userDoc;
userDoc=QJsonDocument::fromJson(data);

关于c++ - 如何从文件加载 QJsonDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56841900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com