我有一个 JSON 编码字典的 QString。有没有一种简单的方法可以将它们转换为 QHash 列表?我看过这篇文章Best JSON parser for Qt? ,但无法获得有效的 QHash(说它是空的)。
"[{ 'var' : 'xres', 'name' : 'Image Width', 'type' : 'int', 'min' : 1, 'max' : 4096},{ 'var' : 'yres', 'name' : 'Image Height', 'type' : 'int', 'min' : 1, 'max' : 4096}]"
我希望它们像QList<QHash<QString,QVariant>>
.
解决了:
QScriptValue sc;
QScriptEngine engine;
sc = engine.evaluate(atts); // In new versions it may need to look like engine.evaluate("(" + QString(result) + ")");
QVariantList attsList;
qScriptValueToSequence(sc, attsList);
foreach (QVariant item, attsList) {
//std::cout << item.typeName() << std::endl;
QMap<QString,QVariant> attribute = item.toMap();
attribute["name"].toString() // etc.