QT讀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,然后,再逐層查找】
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/13745.html
標籤:C++
上一篇:稀疏矩陣類
下一篇:C++ 運算子多載
