我在使用 QJON 对象解析 JSON 时遇到了麻烦。
我读取了资源文件中引用的我的 json 文件,读取了内容并尝试从我得到的 QString 初始化 QJSONDocument。而且它似乎不起作用
这是我使用的代码:
QFile myFile(":/mime/iconemapping.json");
myFile.open(QIODevice::ReadOnly);
QJsonDocument jsonContent;
QJsonObject root;
QString jsonString = QString::fromUtf8(myFile.readAll()).simplified();
jsonContent = QJsonDocument::fromJson(jsonString.toUtf8());
root = jsonContent.object();
QJsonObject ext = root["extensions"].toObject();
QStringList listeCle = ext.keys();
int s = listeCle.size();
for (int i = 0; i < listeCle.size(); i++) {
QString cle = listeCle.at(i).toLocal8Bit().constData();
MAP_ICONE_MIME.insert(cle, ext[cle].toString());
}
myFile.close();
在我尝试QJSONDocument::fromJson()
我的 jsonString 之前包含 : { "extensions" : { ".7z" : ":/mime/7zip.png", ".ace" : ":/mime/ace.png", ".ai" : ":/mime/ai.png", ".eps" : ":/mime/ai.png", ".alg" : ":/mime/algobox.png", ".rar" : ":/mime/archive.png", ".aiff" : ":/mime/audio-x-generic.png"}
。(有更多数据,但我想你明白了)。
该程序不会意外停止,但listeCle.size()
始终为 0。我尝试直接访问ext[".7z"].toString()
但仍然得到""
结果。
我可能犯了一个巨大的错误,但到目前为止,这是程序中唯一失败的 JSON 解析。
你有什么解释或线索吗?
谢谢你为我做的一切