C++ 如何从文件加载QJsonDocument
我正在尝试学习如何使用JSON和Qt,但从文件中获取QJsonDocument时遇到问题。该文件打开正确,我还可以使用qDebug()查看文件内容,但从该文件创建的QJsonDocument始终为空C++ 如何从文件加载QJsonDocument,c++,json,qt,C++,Json,Qt,我正在尝试学习如何使用JSON和Qt,但从文件中获取QJsonDocument时遇到问题。该文件打开正确,我还可以使用qDebug()查看文件内容,但从该文件创建的QJsonDocument始终为空 if(stdButton==QDialogButtonBox::Ok) { qDebug()<<"accept button clicked"; QFile userList; userList.setFileName("users
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();
}
if(stdButton==QDialogButtonBox::Ok)
{
qDebug()
这是因为在上一次调用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);
QFile用户列表;
setFileName(“users.json”);
打开(QIODevice::ReadOnly);
QByteArray data=userList.readAll();
qDebug()
QFile userList;
userList.setFileName("users.json");
userList.open(QIODevice::ReadOnly);
QByteArray data = userList.readAll();
qDebug()<<QJsonDocument::fromJson(data);
QJsonDocument userDoc;
userDoc=QJsonDocument::fromJson(data);