crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QtScript и JSON
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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
Гость_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");
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 должна попасть единица, но не попадает. Что я делаю не так?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.4.2024, 11:03