C++ 如何从文件加载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

我正在尝试学习如何使用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();
    }
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);