I have a QMap object and I would like to convert it to JSON. I am confused how I would accomplish this.
I read QT documentation saying that I can use QDataStream to convert QMap to JSON, but QDataStream seems to convert files: http://doc.qt.io/qt-4.8/datastreamformat.html
// c++
QMap<QString, int> myMap;
It would be easiest to convert the map to
QVariantMap
which can automatically be converted to a JSON document:The same thing can be used to create a
QJsonObject
if you want, via theQJsonObject::fromVariant()
static method. Although forQJsonObject
you can skip the conversion to variant map step and simply populate the object manually as you iterate the map:If you are using Qt 5.5 or higher you could use QJsonDocument::fromVariant, your map could be converted easily to a QVariantMap. If not, try QJson
For your purpose, you are looking for QMAP serialization, see this link: Serialization Qt. Try to set up the constructor with a QByteArray, something like this:
That's, will serialize your map in a QByteArray wich could be easily converted to a QString or std::string.