конвертировать массив хэшей json в список Qhashes Qt - PullRequest
1 голос
/ 24 июня 2011

У меня есть QString словарей в кодировке JSON. Есть ли простой способ конвертировать их в список QHashes? Я посмотрел на этот пост Лучший анализатор JSON для 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.

1 Ответ

1 голос
/ 24 июня 2011

Если вы используете QScriptEngine (или QJson) для анализа, это помещает свойства в QMap, а не в QHash.

Достаточно легко конвертировать между ними, но это не будет сделано автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...