#qt #json
#qt #json
Вопрос:
Я пытаюсь проанализировать строку json, используя этот метод:
QString ourJSONData = QString('{"couchdb":"Welcome","version":"1.0.1"}');
QString response = QString("[") QString(ourJSONData) QString("]");
QScriptEngine engine;
QScriptValue sc = engine.evaluate(response);
ui->label->setText(sc.toString());
Но метка возвращает
Ошибка синтаксического анализа: ошибка синтаксического анализа
Я использую Qt 4.7.4
Что я делаю не так? Спасибо.
UPD:
Извините, проблема была в этой строке:
QString ourJSONData = QString(‘{«couchdb»:»Добро пожаловать»,»версия»:»1.0.1″}’);
необходимо изменить:
QString ourJSONData = QString(«{«couchdb»:»Добро пожаловать «,»версия»:»1.0.1″}»);
PS этот метод я нашел в http://blog.siegerstein.com/archives/134
Комментарии:
1. Вы должны использовать настоящий синтаксический анализатор JSON для обработки JSON вместо
eval
функции движка JavaScript.
Ответ №1:
Я встроил ваш код в QtCreator и получил очень полезное сообщение об ошибке:
символьная константа слишком длинная для своего типа
Это потому, что ваша ourJSONData
переменная инициализируется текстом в одинарных кавычках, который предназначен для одиночных символов.
Это исправит эту инициализацию. (Я поставил
перед каждой двойной кавычкой, а затем изменил одинарные кавычки на двойные):
QString ourJSONData = QString("{"couchdb":"Welcome","version":"1.0.1"}");