25 #include "json_scanner.h"
27 #include <QtCore/QBuffer>
28 #include <QtCore/QStringList>
29 #include <QtCore/QTextStream>
30 #include <QtCore/QDebug>
32 using namespace QJson;
34 ParserPrivate::ParserPrivate() :
36 m_specialNumbersAllowed(false)
41 ParserPrivate::~ParserPrivate()
47 void ParserPrivate::setError(
const QString &errorMsg,
int errorLine) {
49 m_errorMsg = errorMsg;
50 m_errorLine = errorLine;
53 void ParserPrivate::reset()
79 if (!io->open(QIODevice::ReadOnly)) {
82 qCritical (
"Error opening device");
87 if (!io->isReadable()) {
90 qCritical (
"Device is not readable");
98 d->setError(QLatin1String(
"No data"), 0);
103 d->m_scanner =
new JSonScanner (io);
104 d->m_scanner->allowSpecialNumbers(d->m_specialNumbersAllowed);
120 buffer.open(QBuffer::ReadWrite | QBuffer::Text);
121 buffer.write(jsonString);
123 return parse (&buffer, ok);
128 return d->m_errorMsg;
133 return d->m_errorLine;
137 d->m_specialNumbersAllowed = allowSpecialNumbers;
141 return d->m_specialNumbersAllowed;
QVariant parse(QIODevice *io, bool *ok=0)
void allowSpecialNumbers(bool allowSpecialNumbers)
bool specialNumbersAllowed() const
QString errorString() const