QT5 解析JSON文件

QT讀JSON文件步驟,這裏把過程記錄一下,網上大多都是怎麼寫json的,對於讀的,記錄的很少json

  • 首先JSON文件格式必須爲UTF-8(非UTF-8 with BOM),UTF-8 with BOM 即爲UTF-8 前加了BOM標識,會致使解析失敗,報錯內容非法,這時候就將文件保存爲UTF-8就行了。
  • QT5 解析JSON須要引入頭文件
#include <QJsonDocument>
      #include <QJsonObject>
      #include <QJsonParseError>
  • 從文件讀入文本
#include <QFile>
QFile file("./ServerConfig.json");
if(file.open(QIODevice::ReadWrite | QIODevice::Text))//打開文件
{
       QByteArray fileContent = file.readAll().data();//提取文本信息
}
  • 解析文件內容
QJsonParseError err; //Json 解析錯誤類
      QJsonObject jsonObj = QJsonDocument::fromJson(fileContent,&err).object();//將json解析成對象
      if(jsonObj.isEmpty())//檢查json是否合法(是否爲空)
      {
            cout <<"[!!!]Abort!Config file Parsing Error"<<endl;
            cout << err.errorString().toStdString()<< endl; //Json 解析錯誤信息
            return;//當錯誤時,返回
      }
      else
      {
            QStringList keys = jsonObj.keys(); //取出關鍵詞列表,若是你的json是動態的,那麼須要靠這個列表取表項
      }
      if(jsonObj.contains("global"))//global項是否存在
      {
            
            jsonObj.value("global").toString();//取出這個項的內容
      }

【若JSON爲多層嵌套結構,則toString改成toObject,而後,再逐層查找】code

相關文章
相關標籤/搜索