gpt4 book ai didi

c++ - Qt与JSON资源解析——Empty QJSONDocument

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:02 39 4
gpt4 key购买 nike

我在使用 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 解析。

你有什么解释或线索吗?

谢谢你的一切

最佳答案

因此 JSON 无效。我建议使用 http://jsonformatter.curiousconcept.com/将来,这是一个很棒的网站。

{
"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"
}
}

关于c++ - Qt与JSON资源解析——Empty QJSONDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26649440/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com