Разбор ресурсов Qt и JSON — Пустой QJSONDocument

У меня проблема при разборе JSON с использованием объектов QJON.

Я читаю мой файл json, на который есть ссылка в файле ресурсов, читаю содержимое и пытаюсь инициализировать QJSONDocument из полученной мной строки QString. И, кажется, это не работает

Вот код, который я использую:

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, который не выполняется в программе.

У вас есть какие-либо объяснения или подсказки?

Спасибо тебе за все

1

Решение

Итак 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"}
}
0

Другие решения


По вопросам рекламы [email protected]