Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Script. Интеграция WebKit _ QtScript и JSON

Автор: crouly 28.5.2010, 8:16

есть такой код:

#include <QScriptEngine>
#include <QtGui>
#include <QApplication>

int main(int argc, char** argv) {

   QApplication app(argc, argv);

   QString str = "{\"some\":{\"a\":1,\"t\":7}}";

   QScriptEngine engine;
   QScriptValue value;
   QScriptValue some_value;

   value = engine.evaluate(str);

   some_value = value.property("some").property("n");

   qDebug() << "str: " << str; // str:  "{"some":{"a":1,"t":7}}"
   qDebug() << "some_value : " << some_value.toInteger(); // some_value :  0

   return app.exec();

}


вроде как в some_value должна попасть единица, но не попадает. Что я делаю не так?

Автор: Гость_asvil_* 31.5.2010, 22:39

Цитата(crouly @ 28.5.2010, 8:16) *
some_value = value.property("some").property("n");

Может быть:

some_value = value.property("some").property("a");

Автор: CrackedMind 25.6.2010, 2:15

Ну, во-первых : таки

some_value = value.property("some").property("a");

Во-вторых, весь главный блок {} в
 QString str = "{\"some\":{\"a\":1,\"t\":7}}";
Возьми в (), чтобы получилось
  QString str = "( { \"some\" : { \"a\" : 1, \"t\" : 7 } } )";

В-третьих, проверяй QScriptValue после evaluate на ошибки

value = evaluate(...);
if ( value.isError() )
    qDebug() << value.toString(); // напечатает какая ошибка возникла, без () возникала ошибка парсинга



p.s. проверялось на Qt 4.6.3

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)