summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qjsonvalue.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2018-01-25 15:25:35 -0800
committerThiago Macieira <thiago.macieira@intel.com>2018-07-04 03:04:17 +0000
commitfcb0f68e77bb69544f0ae310baffd3ceff8a9e5d (patch)
treeafd7fe27c11d39d12c3bc2d0eefd385e55081589 /src/corelib/serialization/qjsonvalue.cpp
parent6c64a9b2d29d5de054d1d8ccec2050c28767c10c (diff)
CBOR: Complete the conversions between CBOR, JSON and Qt meta types
Change-Id: I56b444f9d6274221a3b7fffd150d3130db6ef1a0 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/serialization/qjsonvalue.cpp')
-rw-r--r--src/corelib/serialization/qjsonvalue.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/corelib/serialization/qjsonvalue.cpp b/src/corelib/serialization/qjsonvalue.cpp
index b8051d6228..3c5b0a0e02 100644
--- a/src/corelib/serialization/qjsonvalue.cpp
+++ b/src/corelib/serialization/qjsonvalue.cpp
@@ -46,6 +46,11 @@
#include <qstringlist.h>
#include <qdebug.h>
+#ifndef QT_BOOTSTRAPPED
+# include <qcborarray.h>
+# include <qcbormap.h>
+#endif
+
#include "qjson_p.h"
QT_BEGIN_NAMESPACE
@@ -423,6 +428,25 @@ QJsonValue &QJsonValue::operator =(const QJsonValue &other)
\li QMetaType::QUuid
\endlist
\li QJsonValue::String. Since Qt 5.11, the resulting string will not include braces
+ \row
+ \li
+ \list
+ \li QMetaType::QCborValue
+ \endlist
+ \li Whichever type QCborValue::toJsonValue() returns.
+ \row
+ \li
+ \list
+ \li QMetaType::QCborArray
+ \endlist
+ \li QJsonValue::Array. See QCborValue::toJsonValue() for conversion restrictions.
+ \row
+ \li
+ \list
+ \li QMetaType::QCborMap
+ \endlist
+ \li QJsonValue::Map. See QCborValue::toJsonValue() for conversion restrictions and the
+ "stringification" of map keys.
\endtable
For all other QVariant types a conversion to a QString will be attempted. If the returned string
@@ -469,6 +493,12 @@ QJsonValue QJsonValue::fromVariant(const QVariant &variant)
QJsonDocument doc = variant.toJsonDocument();
return doc.isArray() ? QJsonValue(doc.array()) : QJsonValue(doc.object());
}
+ case QMetaType::QCborValue:
+ return variant.value<QCborValue>().toJsonValue();
+ case QMetaType::QCborArray:
+ return variant.value<QCborArray>().toJsonArray();
+ case QMetaType::QCborMap:
+ return variant.value<QCborMap>().toJsonObject();
#endif
default:
break;