JsonSerializer returns QByteArray
JSON supports UTF-16, however the serializer is 8-bit clean. Instead of returning a QString only to turn it back into a QByteArray, return a QByteArray on serialization.
This commit is contained in:
parent
9596c5d614
commit
e183803784
|
@ -15,3 +15,7 @@ void Command::emitFinished(bool success, QString message) {
|
||||||
emit finished(new Response(success, message, this));
|
emit finished(new Response(success, message, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Command::emitFinished(bool success, QByteArray message) {
|
||||||
|
emit finished(new Response(success, message, this));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ class Command : public QObject {
|
||||||
protected:
|
protected:
|
||||||
void emitFinished(bool success);
|
void emitFinished(bool success);
|
||||||
void emitFinished(bool success, QString message);
|
void emitFinished(bool success, QString message);
|
||||||
|
void emitFinished(bool success, QByteArray message);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void finished(Response *response);
|
void finished(Response *response);
|
||||||
|
|
|
@ -8,7 +8,7 @@ ConsoleMessages::ConsoleMessages(WebPageManager *manager, QStringList &arguments
|
||||||
|
|
||||||
void ConsoleMessages::start() {
|
void ConsoleMessages::start() {
|
||||||
JsonSerializer serializer;
|
JsonSerializer serializer;
|
||||||
QString json = serializer.serialize(page()->consoleMessages());
|
QByteArray json = serializer.serialize(page()->consoleMessages());
|
||||||
emitFinished(true, json);
|
emitFinished(true, json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ void GetWindowHandles::start() {
|
||||||
handles << page->uuid();
|
handles << page->uuid();
|
||||||
|
|
||||||
JsonSerializer serializer;
|
JsonSerializer serializer;
|
||||||
QString json = serializer.serialize(handles);
|
QByteArray json = serializer.serialize(handles);
|
||||||
|
|
||||||
emitFinished(true, json);
|
emitFinished(true, json);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
JsonSerializer::JsonSerializer(QObject *parent) : QObject(parent) {
|
JsonSerializer::JsonSerializer(QObject *parent) : QObject(parent) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QString JsonSerializer::serialize(const QVariant &object) {
|
QByteArray JsonSerializer::serialize(const QVariant &object) {
|
||||||
addVariant(object);
|
addVariant(object);
|
||||||
return m_buffer;
|
return m_buffer;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ void JsonSerializer::addMap(const QVariantMap &map) {
|
||||||
m_buffer.append("}");
|
m_buffer.append("}");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString JsonSerializer::sanitizeString(QString str) {
|
QByteArray JsonSerializer::sanitizeString(QString str) {
|
||||||
str.replace("\\", "\\\\");
|
str.replace("\\", "\\\\");
|
||||||
str.replace("\"", "\\\"");
|
str.replace("\"", "\\\"");
|
||||||
str.replace("\b", "\\b");
|
str.replace("\b", "\\b");
|
||||||
|
@ -91,7 +91,7 @@ QString JsonSerializer::sanitizeString(QString str) {
|
||||||
str.replace("\r", "\\r");
|
str.replace("\r", "\\r");
|
||||||
str.replace("\t", "\\t");
|
str.replace("\t", "\\t");
|
||||||
|
|
||||||
QString result;
|
QByteArray result;
|
||||||
const ushort* unicode = str.utf16();
|
const ushort* unicode = str.utf16();
|
||||||
unsigned int i = 0;
|
unsigned int i = 0;
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,15 @@ class JsonSerializer : public QObject {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
JsonSerializer(QObject *parent = 0);
|
JsonSerializer(QObject *parent = 0);
|
||||||
QString serialize(const QVariant &object);
|
QByteArray serialize(const QVariant &object);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addVariant(const QVariant &object);
|
void addVariant(const QVariant &object);
|
||||||
void addString(const QString &string);
|
void addString(const QString &string);
|
||||||
void addArray(const QVariantList &list);
|
void addArray(const QVariantList &list);
|
||||||
void addMap(const QVariantMap &map);
|
void addMap(const QVariantMap &map);
|
||||||
QString sanitizeString(QString string);
|
QByteArray sanitizeString(QString string);
|
||||||
|
|
||||||
QString m_buffer;
|
QByteArray m_buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue