1

JSONでエンコードされた辞書のQStringがあります。それらをQHashのリストに変換する簡単な方法はありますか?私はこの投稿を見てきましたQtのベストJSONパーサー?、しかし有効な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.
4

1 に答える 1

1

QScriptEngine(またはQJson)を使用して解析を行う場合、これにより、プロパティがQHashではなくQMapに配置されます。

2つの間で変換するのは簡単ですが、自動的には行われません。

于 2011-06-24T12:12:38.300 に答える