diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-03-20 23:30:31 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-20 23:30:31 +0100 |
commit | e5a11fbb3251a98fafd6bebf0b6fc366acb19088 (patch) | |
tree | 8e1bd6704205307e0a23484221ea1bb67a9f411e /src/corelib/json | |
parent | 0646d1131b4bc65cdd9af29f4ce00fdd2398a3df (diff) | |
parent | 76c0be34cd4ff4564693162fa7528463e23ce9d8 (diff) |
Merge "Merge branch 'dev' into stable" into refs/staging/stable
Diffstat (limited to 'src/corelib/json')
-rw-r--r-- | src/corelib/json/qjsonarray.h | 4 | ||||
-rw-r--r-- | src/corelib/json/qjsondocument.cpp | 39 | ||||
-rw-r--r-- | src/corelib/json/qjsondocument.h | 17 | ||||
-rw-r--r-- | src/corelib/json/qjsonobject.h | 4 | ||||
-rw-r--r-- | src/corelib/json/qjsonvalue.h | 4 |
5 files changed, 49 insertions, 19 deletions
diff --git a/src/corelib/json/qjsonarray.h b/src/corelib/json/qjsonarray.h index 24c04d2942..1474ccae41 100644 --- a/src/corelib/json/qjsonarray.h +++ b/src/corelib/json/qjsonarray.h @@ -45,8 +45,6 @@ #include <QtCore/qjsonvalue.h> #include <QtCore/qiterator.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE class QDebug; @@ -219,6 +217,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonArray &); QT_END_NAMESPACE -QT_END_HEADER - #endif // QJSONARRAY_H diff --git a/src/corelib/json/qjsondocument.cpp b/src/corelib/json/qjsondocument.cpp index 550cc76b0d..bdb46528d3 100644 --- a/src/corelib/json/qjsondocument.cpp +++ b/src/corelib/json/qjsondocument.cpp @@ -303,15 +303,50 @@ QVariant QJsonDocument::toVariant() const */ QByteArray QJsonDocument::toJson() const { + return toJson(Indented); +} + +/*! + \enum QJsonDocument::JsonFormat + + This value defines the format of the JSON byte array produced + when converting to a QJsonDocument using toJson(). + + \value Indented Defines human readable output as follows: + \code + { + "Array": [ + true, + 999, + "string" + ], + "Key": "Value", + "null": null + } + \endcode + + \value Compact Defines a compact output as follows: + \code + {"Array": [true,999,"string"],"Key": "Value","null": null} + \endcode + */ + +/*! + Converts the QJsonDocument to a UTF-8 encoded JSON document in the provided \a format. + + \sa fromJson(), JsonFormat + */ +QByteArray QJsonDocument::toJson(JsonFormat format) const +{ if (!d) return QByteArray(); QByteArray json; if (d->header->root()->isArray()) - QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0); + QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0, (format == Compact)); else - QJsonPrivate::Writer::objectToJson(static_cast<QJsonPrivate::Object *>(d->header->root()), json, 0); + QJsonPrivate::Writer::objectToJson(static_cast<QJsonPrivate::Object *>(d->header->root()), json, 0, (format == Compact)); return json; } diff --git a/src/corelib/json/qjsondocument.h b/src/corelib/json/qjsondocument.h index 675ee75dbf..4d4f3885dc 100644 --- a/src/corelib/json/qjsondocument.h +++ b/src/corelib/json/qjsondocument.h @@ -44,8 +44,6 @@ #include <QtCore/qjsonvalue.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE class QDebug; @@ -109,8 +107,19 @@ public: static QJsonDocument fromVariant(const QVariant &variant); QVariant toVariant() const; + enum JsonFormat { + Indented, + Compact + }; + static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = 0); - QByteArray toJson() const; + +#ifdef Q_QDOC + QByteArray toJson(JsonFormat format = Indented) const; +#else + QByteArray toJson() const; //### Merge in Qt6 + QByteArray toJson(JsonFormat format) const; +#endif bool isEmpty() const; bool isArray() const; @@ -144,6 +153,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonDocument &); QT_END_NAMESPACE -QT_END_HEADER - #endif // QJSONDOCUMENT_H diff --git a/src/corelib/json/qjsonobject.h b/src/corelib/json/qjsonobject.h index 4168e4b633..8226b614b4 100644 --- a/src/corelib/json/qjsonobject.h +++ b/src/corelib/json/qjsonobject.h @@ -45,8 +45,6 @@ #include <QtCore/qjsonvalue.h> #include <QtCore/qiterator.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE class QDebug; @@ -214,6 +212,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &); QT_END_NAMESPACE -QT_END_HEADER - #endif // QJSONOBJECT_H diff --git a/src/corelib/json/qjsonvalue.h b/src/corelib/json/qjsonvalue.h index 38f4a03c0f..b8bdf55aa3 100644 --- a/src/corelib/json/qjsonvalue.h +++ b/src/corelib/json/qjsonvalue.h @@ -45,8 +45,6 @@ #include <QtCore/qglobal.h> #include <QtCore/qstring.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE class QDebug; @@ -184,6 +182,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonValue &); QT_END_NAMESPACE -QT_END_HEADER - #endif // QJSONVALUE_H |