2011-06-24 16 views
1

QStringのJSONエンコードされた辞書があります。それらをQHashのリストに変換する簡単な方法はありますか?私はこの投稿Best JSON parser for Qt?を見てきましたが、有効なQハッシュを得ることができませんでした(空であると言います)。ハッシュの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. 
+0

あなたが試したコードを投稿して、人々がそれを見てうまくいけばそれを修正できるようにしてください。 – Mat

答えて

1

あなたが構文解析を行うためにQScriptEngine(またはQJson)を使用している場合は、これはQHashではなく、QMapにプロパティを置きます。

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

関連する問題