自从升级到 Qt 5.4 后,我在解析 json 时遇到问题。
这是一个例子:
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
char jsString[] {
"{\"results\":[{\"id\":1,\"title\":\"Test1\"},{\"id\":2,\"title\":\""
"Test2\"},{\"id\":3,\"title\":\"Test3\"},{\"id\":4,\"title\":\"Test4\"}]}"
};
QJsonParseError *error { nullptr };
// parse bytes to json
QJsonDocument doc { QJsonDocument::fromJson(jsString, error) };
if (error) {
qDebug() << "error parsing json:" << error->errorString();
} else {
QJsonObject rootObj { doc.object() };
QJsonArray results { rootObj.value("results").toArray() };
qDebug() << "results.count:" << results.count();
for (QJsonValue v : results) {
qDebug() << "v:" << v.toObject().value("title").toString();
}
}
return a.exec();
}
如果我使用 Qt 5.3 运行它,一切都很好。输出是:
results.count: 4
v: "Test1"
v: "Test2"
v: "Test3"
v: "Test4"
如果我使用 Qt 5.4 运行它,我会得到:
results.count: 1
v: ""
我使用 clang 编译器在 Mac OS X Yosemite 64 位上运行它。
有谁知道出了什么问题?
干杯,曼罗门