diff options
Diffstat (limited to 'src/corelib/serialization/qjsonvalue.cpp')
| -rw-r--r-- | src/corelib/serialization/qjsonvalue.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/corelib/serialization/qjsonvalue.cpp b/src/corelib/serialization/qjsonvalue.cpp index c2dea9817d1..7ccfb782c33 100644 --- a/src/corelib/serialization/qjsonvalue.cpp +++ b/src/corelib/serialization/qjsonvalue.cpp @@ -15,6 +15,7 @@ #include <qdebug.h> #include "qdatastream.h" #include "qjsonparser_p.h" +#include "qjsonwriter_p.h" #include <private/qnumeric_p.h> #include <private/qcborvalue_p.h> @@ -606,7 +607,7 @@ QVariant QJsonValue::toVariant() const Currently, only objects/maps and arrays/lists can be parsed. - \sa QJsonParseError, isUndefined() + \sa QJsonParseError, isUndefined(), toJson() */ QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error) { @@ -617,6 +618,43 @@ QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error) } /*! + \enum QJsonValue::JsonFormat + \since 6.9 + + This value defines the format of the JSON byte array produced + when converting to a QJsonValue using toJson(). + + \value Indented Defines human readable output as follows: + \snippet code/src_corelib_serialization_qjsondocument.cpp 0 + + \value Compact Defines a compact output as follows: + \snippet code/src_corelib_serialization_qjsondocument.cpp 1 + */ + +/*! + \since 6.9 + Converts the QJsonValue to a UTF-8 encoded JSON value in the provided \a format. + + Currently, only objects/maps and arrays/lists can be encoded. + + \sa fromJson(), JsonFormat + */ +#if !defined(QT_JSON_READONLY) || defined(Q_QDOC) +QByteArray QJsonValue::toJson(JsonFormat format) const +{ + QByteArray json; + + const QCborContainerPrivate *container = QJsonPrivate::Value::container(value); + if (isArray()) + QJsonPrivate::Writer::arrayToJson(container, json, 0, (format == Compact)); + else + QJsonPrivate::Writer::objectToJson(container, json, 0, (format == Compact)); + + return json; +} +#endif + +/*! Returns the type of the value. \sa QJsonValue::Type |
