crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QtScript и JSON
crouly
  опции профиля:
сообщение 28.5.2010, 8:16
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 28.5.2010
Пользователь №: 1762

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

#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
Сообщение #2





Гости








    


Цитата(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
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 13.3.2009
Пользователь №: 611

Спасибо сказали: 7 раз(а)




Репутация:   0  


Ну, во-первых : таки
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

Сообщение отредактировал CrackedMind - 25.6.2010, 2:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 5:25