Qt和JSON资源解析-空的QJSONDocument
Qt and JSON resource parsing - Empty QJSONDocument
使用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"
}
}
相关文章:
- 如何创建一个空的全局类并在启动时实例化它
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 当使用透明的std函数对象时,我们还需要写空的尖括号吗
- 复制几乎为空的数组的最快方法
- 堆分配的对象是否存在永不为空的唯一所有者?
- 从封装在对象中的函数 C++ 返回时为空的列表
- C++ std::function 对于类 exept 的所有实例都是空的(只有 Visual2019 编译器问题)
- 如何在 C 中使用空的 main() 方法运行函数?
- C++:调用没有匹配函数:为什么需要一个空的构造函数?
- 初始化空的 2D 矢量?
- .value( "key" , default) 不适用于空的 json 对象吗?
- 我们应该在使用 std::bind 应用之前检查一个不为空的函数吗?
- 为什么输出总是空的?
- 为什么添加析构函数(甚至是空的)会破坏我的结构,该结构使用 ref 转发和折叠来保存 ref 或值的副本?
- 使用opencv在GPU上调整图像大小会产生空的输出矩阵
- C++11在缺少空的非成员函数时提供该函数
- C++ - 空的 std::list begin() 和 end() 不相等
- GetServiceKeyName 返回空的服务名称
- 使编译器为 std::function 生成一个空的默认函数
- Qt和JSON资源解析-空的QJSONDocument